Tips

2017-05-22  本文已影响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)等。
解释:

>>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

上一篇下一篇

猜你喜欢

热点阅读