1.類和例項
class 類名(父類/基類/超類列表):
pass
class student:
def __init__(self,name, age):
self.name = name
self.age = age
def printinfo(self):
print("name:{}".format(self.name), "age:{}".format(self.age))
stu1 = student("curry", 31)
stu2 = student("harden", 29)
2.例項變數與類變數stu1.name
stu1.age
class student:
classroom = "101"
address = "beijing"
def __init__(self,name, age):
self.name = name
self.age = age
def printinfo(self):
print("name:{}".format(self.name), "age:{}".format(self.age))
stu1.classroom # 類變數的訪問
student.classroom
stu1.name
class student:
classroom = "101" # 類變數
address = "beijing"
def __init__(self,name, age):
self.name = name
self.age = age
def printinfo(self):
print("name:{}".format(self.name), "age:{}".format(self.age))
stu1 = student("curry", 31)
stu2 = student("harden", 29)
print(stu1.classroom) # stu1例項本身沒有classroom例項變數,所以去尋找類變數,它找到了!
student.classroom # 通過類名訪問類變數
stu1.classroom = "110" # 關鍵的一步!實際是為例項stu1建立了乙個獨有的例項變數classroom,只不過名字和類變數一樣,都叫做classroom。
print(stu1.classroom) # 輸出110,再次訪問的時候,訪問到的是stu1自己的例項變數classroom
del stu1.classroom # 刪除了stu1的例項變數classroom
3.類的方法def printinfo(self):
print("name:{}".format(self.name), "age:{}".format(self.age))
class foo:
@statcimethod:
def static_method():
pass
# 呼叫
foo.static_method()
class foo:
@classmethod
def bar_method(cls):
pass
# 呼叫
foo.bar_method()
綜合例項如下:
class foo:
def __init__(self,name):
self.name = name
def ord_func(self): # 定義例項方法,至少有乙個self引數
print("例項方法")
@classmethod
def class_func(cls): # 定義類方法,至少有乙個cls引數
print("類方法")
@staticmethod
def static_func(): # 定義靜態方法 ,無缺省引數
print("靜態方法")
# 呼叫例項方法
f = foo("jack")
f.ord_func()
foo.ord_func(f) # 請注意這種呼叫方式,雖然可行,但建議不要這麼做!
# 呼叫類方法
foo.class_func()
f.class_func() # 請注意這種呼叫方式,雖然可行,但建議不要這麼做!
# 呼叫靜態方法
foo.static_func()
f.static_func() # 請注意這種呼叫方式,雖然可行,但建議不要這麼做!
4.類、類的方法、類變數、類的例項和例項變數在記憶體中是如何儲存的?
5.參考部落格
python3 類和例項
物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。仍以student類為例,在python中,定義類是通過class關鍵字 class stude...
python3類和例項
物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。仍以student類為例,在python中,定義類是通過class關鍵字 class stude...
python3 物件導向 類和例項
面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把函式繼續切分為子函式,即把大塊函式通過切割成小塊函式來降低系統的複雜度。物件導向程式設計 object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的...