*arg和**kwarg用法
*args:可以理解為只有一列的**,長度不固定
**kwargs:可以理解為字典,長度也不固定
參考:python初學者筆記(五):白話講*arg和**kwarg,你看不懂算我笨!
super().__init__()
繼承父類
python3.x 和 python2.x 的乙個區別是: python 3 可以使用直接使用super().***
代替super(class, self).***
參考:python super() 函式
可以呼叫外部類和函式作為引數傳入,並且在子類的時候可以引數不賦值,可以父類再給類和函式賦引數
例如,下面的get_address
函式和job
類在foochild
中引數不賦值也沒關係,只要在fooparent
中賦值即可,即self.address = get_address('china')
和self.job = job('shenzhen', 'tencent')
class
job:
def__init__
(self, job_address, job_name)
: self.job_address = job_address
self.job_name = job_name
defget_address
(address)
:return address
class
fooparent
(object):
def__init__
(self, address=get_address, job=job)
: self.parent =
'i\'m the parent.'
print
('parent'
) self.address = get_address(
'china'
) self.job = job(
'shenzhen'
,'tencent'
)class
foochild
(fooparent)
:def
__init__
(self)
:# super(foochild,self) 首先找到 foochild 的父類(就是類 fooparent),然後把類 foochild 的物件轉換為類 fooparent 的物件
super
(foochild, self)
.__init__(address=get_address, job=job)
print
('child'
)if __name__ ==
'__main__'
: foochild = foochild(
)print
(foochild.address)
print
(foochild.job.job_address)
print
(foochild.job.job_name)
輸出為
parent
child
china
shenzhen
tencent
傳遞引數時*號的用途
*號加在形參前代表的是收集引數
*號加在實參前代表的是將輸入迭代器拆成乙個個元素
參考:pytorch 容器
python 函式和類
一 物件導向思想的三大要素 封裝 繼承 多型 二 函式 1.定義乙個函式 def 函式名 return.有乙個冒號就縮排乙個tab 2.呼叫函式 函式名 3.示例 注意 在python中,所以的函式都有返回值,如果沒有給予return則預設返回none,如果給予了則返回你給予的return值。1 導...
python關於類和物件
類是python中很重要的資料型別,類的出現可以實現物件的兩量產化。物件等於屬性和方法,比如說人是乙個物件,人的眼睛鼻子等屬於其屬性,而人的運動屬於其方法。簡而言之,就是屬性是靜態的,方法是動態的。python本來就是一種以物件導向解釋性的程式語言。有三個特徵 1 封裝,資訊隱蔽 2 繼承 3 多型...
關於python的類
class person def setname self,name self.name name def getname self return self.name def greet self print hello world my name is s self.name foo person...