格式①:
def a(): print(123) a() # 123
格式②:
def a(c,d) b = c+d return b print(a(5,6)) # 11
def a(*d) return d print(a('luck','jack','iop')) # luck jack iop
def a(j,k,**l): l['pw'] = j l['us'] = k return l print(a(1,2,jk=53,bg=64)) # {'jk': 53, 'bg': 64, 'pw': 1, 'us': 2}
解释:**l
想当于创建了个字典,函数里就是给字典添加内容,同时关键词参数也是在给字典添加内容
文件1:
名字:name.py
def a(j,k,**l): l['pw'] = j l['us'] = k return l def b(): print(567)
文件2:
名字:daoru.py
import name print(name.a(1,2,jk=53,bg=64)) # {'jk': 53, 'bg': 64, 'pw': 1, 'us': 2}
继承上面的代码:from name import a
解释:这样a函数就唯一的被调用进来了
继承上面的代码:
from name import a as c
import name as c
class Ajk(): def __init__(self): self.name=5 def a(self): self.gog=6 def b(self): print(self.name) def ccc(self,nk): print(nk) cc = Ajk() cc.b() # 5
注意:
1*.\_inif\_ (self)
定义上class类默认调用运行;变量前加self
之后,这个变量可供类中所有方法使用;类内调用该参数需要加self
,外部调用不需要
2. 类名用大写字母
3. 括号中的self
必须添加,因为python在运行类时会默认传入实参self
4.类名后传入的参数,默认给_init_(self,canshu)
__init__()
的值class A: def __init__(self): self.name =5 def a(self): name = self.name print(name) aa = A() aa.name=100 aa.a() #100
注意:修改时直接类.变量
;因为调用类默认调用def __init__(self)
普通函数
的值class Ajk(): def ccc(self,nk): print(nk) cc = Ajk() cc.ccc(5) # 5 cc.ccc(20) # 20
情景①
解释:子类里面没有写def _init_(self)
,默认也就把父类的def _init_(self)
也就继承了,不用添加super()_init_()
class Ajk(): def __init__(self): self.name=16 def b(self): print(5) class Bjk(Ajk): def cc(self): print(self.name) bbb = Bjk() bbb.cc() # 16
情景②
解释:子类里面写了def _init_(self)
,这时候父类的def _init_(self)
就被覆盖,如果还想用父类的def _init_(self)
就需要写上super()_init_()
来继承,切记参数位置需要填写且保持一致
class Ajk(): def __init__(self): self.name=16 def b(self): print(5) class Bjk(Ajk): def __init__(self): super().__init__() def cc(self): print(self.name) bbb = Bjk() bbb.cc() # 16
class A: def __init__(self,name): self.name =name def a(self): name = self.name print(name) class B: def __init__(self): self.age=A(150) bb = B() bb.age.a() # 150
解释:每当B()
被调用都会创建A
类的实例并且传入值
特点:能导入指定文件的指定类
代码特点:注意看第二行
from a import b c = b() #对类初始化b是类名,c是变量
特点:文件全部导入,注意代码特点
代码特点:注意看第二行
import a b = a.b() #对类初始化a是文件名,b是类名