>>> 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資料。如果重新實現...