Python 關於類和函式的常見問題

2021-09-29 06:52:07 字數 1888 閱讀 3257

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