Python物件導向筆記

2021-09-07 15:26:32 字數 2559 閱讀 4847

1. 最簡單的類的定義

class

student()

: name =

'lili'

age =

0 sum1 =

0def

__init__

(self, name, age, sum1)

:# 建構函式

self.name = name

self.age = age

self.sum1 = sum1

defprint_msg

(self)

:print

(self.name, self.age)

2. 在例項方法中訪問類變數的兩種方法

def

print_sum1

(self)

:# 例項方法訪問sum1類變數

print

(self.__class__.sum1)

print

(student.sum1)

# 訪問例項變數

print

(self.sum1)

3. 如何定義乙個類方法

@classmethod

defplus_sum

(cls)

: cls.sum1 +=

1print

(cls.sum1)

4. 如何定義乙個靜態方法

@staticmethod

# 靜態方法, 物件和類都可以訪問

defadd()

: student.sum1 +=

1# 靜態方法也可以訪問類變數

print

(student.sum1)

5. 如何改變乙個方法的可見性

def

__change_age

(self, age)

:# 改變方法的可見性,在方法名字前加__變成私有

self.age = age

6.如何改變乙個例項變數的可見性類似,在變數之前加下劃線。但是你會執行發現

student1 = student(

'wang',17

,9)# 例項化

student1.change_age(8)

student1.__name =

'oo'

print

(student1.__name)

依舊可以執行,是否私有變數無效呢?其實不是,原因在於python的.操作會給student1新增乙個新的成員變數。

我們可以用student1.dict() 檢視student1的成員列表

7. 繼承

python 是支援多繼承的

class

human()

:sum=0

def__init__

(self, name, age)

: self.name = name

self.age = age

defget_name

(self)

:print

(self.name)

class

student

(human)

:# 繼承people類

如何在子類呼叫父類的建構函式

class

human()

:sum=0

def__init__

(self, name, age)

: self.name = name

self.age = age

defget_name

(self)

:print

(self.name)

class

student

(human)

:# 繼承people類

def__init__

(self, school, name, age)

:# 建構函式

self.school = school

# human.__init__(self, name, age) # 呼叫父類的建構函式, **注意這裡需要傳遞self**

super

(student, self)

.__init__(name, age)

# 推介使用這種方法呼叫父類建構函式

python 物件導向筆記

python 物件導向小結,最近在學習python,在學習到物件導向時有些記不住,特寫此筆記 1.定義類 class people num 0 def sayhello self print hello 2.定義物件 p people p.sayhello 3.建構函式 init class peo...

python物件導向筆記

封裝繼承 多型class man defeat self print 吃 def slpee self print 睡 建立乙個例項 xm man xm.eat 例項就是類建立出來的物件 dir defdemo test print 這是乙個函式 print dir demo print xm ma...

Python 物件導向(筆記)

標籤 空格分隔 2018 05 10 類 具有相同屬性和方法的物件集合 物件 萬物皆物件,具體實物和行為 類的建立 class cat 貓類 age 1 類成員,特徵 建立建構函式 def init self,name,color self.name name self.color color re...