Python3中的類和例項

2021-09-24 09:56:12 字數 2519 閱讀 7868

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把物件作為程式的...