Tips

作者: 开罗酒吧 | 来源:发表于2017-05-22 14:47 被阅读0次

    1.元组
    元组中只包含一个元素时,需要在元素后面添加逗号:
    tup1 = (50,);

    2.数据类型在PY2 与 PY3之间实现兼容:
    可以通过定义统一的数据类型(通过元组实现),可以参考Flask框架的.compat.py文件:

    import sys
    
    PY2=sys.version_info[0]==2
    _identity=lambda x:x
    
    if not PY2:
      string_types=(str,)
      ...
    else:
      string_types=(str,unicode)
    

    3.set操作:

    a=set([1,2])
    b=set([3,4])
    a|=b
    >>a
    set([1,2,3,4])
    
    class B():
      def getA():
        print("GGG")
    
    >>b=B()
    >>b.getA()
    

    报错:TypeError: getA() takes 0 positional arguments but 1 was given
    因为getA(self)才对,要加上self

    >>a=2,4
    >>(2,4)
    >>b=2,3,4,5
    >>(2,3,4,5)
    
    >>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
    >>> list(enumerate(seasons))
    [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
    >>> list(enumerate(seasons, start=1))
    [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
    

    Equivalent to:

    def enumerate(sequence, start=0):
        n = start
        for elem in sequence:
            yield n, elem
            n += 1
    

    问题:
    Python的函数定义中有两种特殊的情况,即出现*的形式。
    如:def myfun1(username, *keys)或def myfun2(username, **keys)等。
    解释:

    • 用来传递任意个无名字参数,这些参数会一个Tuple的形式访问。
      *用来处理传递任意个有名字的参数,这些参数用dict来访问。
    >>a={'a':2,'b':2}
    >>a.get('c')
    >>None
    >>a.get('c','wa')
    >>wa
    

    eval函数将字符串当成有效Python表达式来求值,并返回计算结果

    x = 1
    eval('x+1')
    eval('x==1')
    

    与之对应的repr函数,它能够将Python的变量和表达式转换为字符串表示

    repr(x==1)
    repr(x+1)
    
    class MyPath():
        @classmethod
        def __fspath__(cls,path):
            return path
    
    print(type(MyPath)) #<class 'type'>
    p=MyPath()
    print(type(p))  #<class '__main__.MyPath'>
    p_type=type(p)
    path="fdsf"
    path_repr=p_type.__fspath__(path)   #输出fdsf
    
    

    相关文章

      网友评论

          本文标题:Tips

          本文链接:https://www.haomeiwen.com/subject/trobxxtx.html