入門python 類與物件導向(3)

2021-07-23 18:49:34 字數 1614 閱讀 9636

>>> class people(object):

... age = 10

# 資料屬性

... def __init__(self, name): # 函式屬性:建構函式

... self.name = name

... def say(self): # 函式屬性:析構函式

... print 'good bye:%s' % self.name

...>>> a = people('guo')

>>> a.name

'guo'

>>> a.say()

good bye:guo

>>> a.age

10

類工具

a = people('guo')

>>> a.__dict__

>>> a.__class__ '__main__.people'>

>>> a.__class__.__name__ 'people'

dir(a)  ['__class__', '__dict__', ..., 'age', 'name', 'say']

hasattr(a, 'age') # 測試是否有x屬性或方法 即a.x是否已經存在

setattr(a, 'age', 19) # 設定屬性或方法 等同於a.age = 19

getattr(a, 'age', 0) # 獲取屬性或方法 如果屬性不存在 則返回預設值0

類方法--(例項方法 / 靜態方法 / 類方法)

class

methods:

defimeth

(self, x): print(self, x) # 例項方法:傳入的是例項和資料,操作的是例項的屬性

defsmeth

(x): print(x) # 靜態方法:只傳入資料 不傳入例項,操作的是類的屬性而不是例項的屬性

defcmeth

(cls, x): print(cls, x) # 類方法:傳入的是類物件和資料

smeth = staticmethod(smeth) # 呼叫內建函式,也可以使用@staticmethod

cmeth = classmethod(cmeth) # 呼叫內建函式,也可以使用@classmethod

上述中:

@staticmethod

defsmeth

(x): print(x)

# 等同於:

defsmeth

(x): print(x)

smeth = staticmethod(smeth)

# 同理

@classmethod

defcmeth

(cls, x): print(x)

# 等同於

defcmeth

(cls, x): print(x)

cmeth = classmethod(cmeth)

python入門3 物件導向

構造方法 coding utf 8 class person i 10 def eat self print hello world zhangsan person zhangsan.eat hello world class p def init self print 構造方法,建立物件 def ...

python物件導向 類與物件

嗯,本學期開始學python物件導向的內容了,唔,前面的內容會在後期有時間慢慢補的。類與物件 我生活中有這樣一句話叫 物以類聚,人以群分 重點是前面那句,什麼是類呢,就是一類事物,比如人類 動物類 這是乙個大的範圍 類是封裝物件的屬性和行為的載體,反過來說,具有相同屬性和行為的一類實體被稱為類 而物...

Python3 物件導向程式設計 類

一 自定義類 1 屬性與方法 格式 class classname def init self,a,b self.a a self.b b def 一般都有乙個 init 函式來定義屬於這個類的引數,前後都被 包圍的函式為特殊方法 以 開頭的變數只能讀,不能寫,相當於private資料。如果重新實現...