目录
*
号的使用
对于*
出现在函数参数中的情况可以表示为可变参数,一般写作*args
,用于将可变数量的参数传递给函数
1 2 3 4 5 6 7 8 9 10 11
| def Fa(*args): c=1 for n in args: c=c*n return c
print(Fa(2,3))
print(Fa(2,3,4))
print(Fa(2,3,4,5))
|
对于单独出现在参数中的*
参数,则表示,*
后面的参数必须为关键字参数的形式
1 2
| def f1(a, *, b, c): return a + b + c
|
此时要正确使用f1
需要b,c
以关键字参数的形式传递参数:
对于**kwargs
参数允许我们将字典类型的键值对参数传递给函数。
1 2 3 4 5 6 7 8 9 10 11
| def myFun(**kwargs): for i in kwargs: print(i,'-',kwargs[i])
myFun(a=10, b=20, c=30, d=40)
a - 10 b - 20 c - 30 d - 40
|
super(father).__init__()
调用父类的__init__()
函数进行初始化
1 2 3 4 5 6 7
| class A(): def __init__(self): self.a=100 self.b='xxx' self.c=True def func1(self): pass
|
现在有类A
,现在想创建类B
继承类A
,但是类B
的self.c
需要改为False
,我们尝试实现
1 2 3 4 5 6 7 8 9 10 11 12
| class B(A): def __init__(self): super(B,self).__init__() self.c=False def func2(self): print(self.b) print(self.c) b=B() b.func2()
xxx False
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class A(): def __init__(self,a,b): self.a=a self.b=b print(self.b) self.prints() def prints(self): print('self.A:',self.a) class Zilei(A): def __init__(self,a): super(Zilei, self).__init__(a,a+1) self.a = a+100 print('self.a:', self.a) def prints(self): print('self.b:',self.b) ass=Zilei(1)
|
if
的后置
1 2 3 4
| a = 1 b = 2 c = a if a > b else b d = a if a > b else b if b > c else c
|
for
的后置
1 2 3 4 5 6
| a = list(str(x) for x in range(4)) print(a)
[m + n for m in 'ABC' for n in 'XYZ']
|
__getitem__
方法
1 2 3
| def __getitem__(self, name): """Access items like ordinary dict.""" return self.config[name]
|
这里应该是属于python内置的方法,在类中定义了这个方法就能把实例化的类当字典用比如config['augment']
。