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)等。
解释:
- 用来传递任意个无名字参数,这些参数会一个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