python-類屬性,例項屬性,類方法,靜態方法,例項方法
類屬性和例項屬性
#coding:utf-8
class student(object):
name = 'i am a class variable' #類變數
>>> s = student() # 建立例項s
>>> print(s.name) # 列印name屬性,因為例項並沒有name屬性,所以會繼續查詢class的name屬性
student
>>> print(student.name) # 列印類的name屬性
student
>>> s.name = 'michael' # 給例項繫結name屬性
>>> print(s.name) # 由於例項屬性優先順序比類屬性高,因此,它會遮蔽掉類的name屬性
michael
>>> print(student.name) # 但是類屬性並未消失,用student.name仍然可以訪問
student
>>> del s.name # 如果刪除例項的name屬性
>>> print(s.name) # 再次呼叫s.n由於例項的name屬性沒有找到,類的name屬性就顯示出來了
student
類方法,例項方法,靜態方法
例項方法,第乙個引數必須要預設傳例項物件,一般習慣用self。
靜態方法,引數沒有要求。
類方法,第乙個引數必須要預設傳類,一般習慣用cls。
# coding:utf-8
class foo(object):
"""類三種方法語法形式"""
def instance_method(self):
print("是類{}的例項方法,只能被例項物件呼叫".format(foo))
@staticmethod
def static_method():
print("是靜態方法")
@classmethod
def class_method(cls):
print("是類方法")
foo = foo()
foo.instance_method()
foo.static_method()
foo.class_method()
print('----------------')
foo.static_method()
foo.class_method()
執行結果:
是類的例項方法,只能被例項物件呼叫
是靜態方法
是類方法
----------------
是靜態方法
是類方法
類方法由於python類中只能有乙個初始化方法,不能按照不同的情況初始化類,類方法主要用於類用在定義多個建構函式的情況。
特別說明,靜態方法也可以實現上面功能,當靜oetjztsa態方法每次都要寫上類的名程式設計客棧字,不方便。
# coding:utf-8
class book(object):
def __i程式設計客棧nit__(self, title):
self.title = title
@classmethod
def class_method_create(cls, title):
book = cls(title=title)
return book
@staticmethod
def static_method_create(title):
book= book(title)
return book
book1 = book("use instance_method_create bwww.cppcns.comook instance")
book2 = book.class_method_create("use class_method_create book instance")
book3 = book.static_method_create("use static_method_create book instance")
print(book1.title)
print(book2.title)
print(book3.title)
本文標題: python中類的屬性和方法介紹
本文位址:
Python 類的屬性和方法
定義乙個類 class a object 類屬性 例項屬性 類方法 例項方法 靜態方法 類屬性,直接在類中定義的屬性是類屬性 類屬性可以通過類或類的例項訪問到 但是類屬性只能通過類物件來修改,無法通過例項物件修改 count 0 def init self 例項屬性,通過例項物件新增的屬性屬於例項屬...
Python中類物件屬性方法
class 類名 可以定義類物件。實際上,當直譯器執行class語句時,就會建立乙個類物件。測試類物件的生成 class student pass 空語句 type是python中的模具類。print type student print id student stu2 student s1 stu...
python類的私有屬性和方法
python 對於類的成員沒有嚴格的訪問控制限制 關於私有 屬性和私有方法,有如下要點 兩個下劃線開頭的屬性是私有的 private 其他為公共的 public 類內部可以訪問私有屬性 方法 類外部不能直接訪問私有屬性 方法 外部可以通過 類名 私有屬性 方法 名 訪問私有屬性 方法 class s...