python 物件導向

2021-10-03 10:26:36 字數 2079 閱讀 4752

class animal(

): animal_num = 0

def __init__(self):

print(

"父類構造方法"

) animal.animal_num += 1

def animal_method(self):

print(

"呼叫父類方法"

)

def set_animal(self, animal_num):

animal.animal_num = animal_num

def my_method(self):

print(

"這是父類的my_method"

)

class cat(animal):

cat_num = 0 # 類變數

def __init__(self, name, a, b):

print(

"子類構造方法"

) self.name = name # 成員變數 -- 公有

self.a = a # 成員變數 -- 公有

self.__b = b # 成員變數 -- 私有

cat.cat_num += 1

def add_a(self, add):

self.a += add

def add_b(self, add):

self.__b += add

def show_cat(self):

print(

"name: %s a: %d self.__b: %d cat.cat_num: %d" %(self.name, self.a, self.__b, cat.cat_num))

def my_method(self):

print(

"這是子類的my_method"

)

cat1 = cat(

"cat1", 1, 3)

cat1.show_cat(

)# name: cat1 a: 1 self.__b: 3 cat.cat_num: 1

print(animal.animal_num)

# 0cat2 = cat(

"cat2", 4, 6)

cat2.show_cat(

)# name: cat2 a: 4 self.__b: 6 cat.cat_num: 2

print(animal.animal_num)

# 0cat1.add_a(1)

cat1.add_b(1)

cat2.add_a(-1)

cat2.add_b(-1)

cat1.show_cat(

)# name: cat1 a: 2 self.__b: 4 cat.cat_num: 2

cat2.show_cat(

)# name: cat2 a: 3 self.__b: 5 cat.cat_num: 2

# print(cat1.__b) # 不能從外部訪問 'cat' object has no attribute '__b'

# print(cat2.__b) # 不能從外部訪問 'cat' object has no attribute '__b'

cat1.set_animal(100)

print(animal.animal_num)

# 100

cat2.set_animal(200)

print(animal.animal_num)

# 100

cat1.animal_method(

)# 呼叫父類方法

animal = animal(

)animal.my_method(

)# 這是父類的my_method

cat1.my_method(

)# 這是子類的my_method

cat2.my_method(

)# 這是子類的my_method

python物件導向學習 python物件導向學習

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...

python物件導向總結 Python物件導向總結

python 物件導向 oop 1 物件導向 是乙個更大封裝,把乙個物件封裝多個方法 2 類 是對一些具有相同特徵或行為的事物的乙個統稱,是抽象的,不能直接使用 特徵被稱為屬性 行為被稱為方法 3 物件 是由類建立出來的乙個具體的存在,可以直接使用 先有類再有物件,類只有乙個,而物件可以有多個 類中...

python登入物件導向 python 物件導向

一 屬性和方法 1.a a 例項屬性 通過例項物件來新增的屬性就是例項屬性 a.count 10 例項方法都是在類中直接定義的 以self為第乙個引數的方法都是例項方法 當通過例項物件呼叫時,會自動傳遞當前物件作為self傳入 當通過類物件呼叫時,不會自動傳遞self a.test 等價於 a.te...