Python學習筆記 物件導向 3

2021-10-01 19:15:21 字數 2939 閱讀 6443

class

user

:# 類空間中定義的變數,是類變數

category =

"未知型別"

def__init__

(self, name =

"user"

, password =

"123456"):

# 通過self引用賦值的變數,是例項變數

self.name = name

self.password = password

# 通過類引用賦值的變數,是類變數

user.

type

="通用使用者"

print

(user.category)

user.category =

"after changed"

print

(user.category)

user.

type

="second change"

print

(user.category)

print

(user.

type

)

after changed

after changed

second change

us = user(

)# 當物件本身沒有category這個例項變數時,物件可訪問到類變數

print

(us.category)

us.category =

"例項型別"

# 當物件本身已有category這個例項變數時,物件優先例項變數,但是這時通過類來訪問同名的類變數時,還是訪問的「修改前的」類變數

print

(us.category)

print

(user.category)

# 此處訪問的依然是類變數

未知型別

例項型別

未知型別

class

rectangle

:def

__init__

(self, width, height)

: self.width = width

self.height = height

defgetarea

(self)

:print

("getarea例項方法"

)return self.width * self.height

# 合成了乙個計算面積的屬性

area =

property

(fget = getarea, doc =

"獲取面積的屬性"

)def

getsize

(self)

:print

("getsize例項方法"

)return self.width, self.height

defsetsize

(self, size)

:print

("setsize例項方法"

) self.width = size[0]

self.height = size[1]

# 合成了乙個代表大小的屬性

size =

property

(fget = getsize, fset = setsize, doc =

"獲取大小的屬性"

)

r = rectangle(30,

40)# 訪問r的area例項變數,實際上就是呼叫getarea方法

print

(r.area)

# 結果如下:

getarea例項方法

1200

# 訪問size屬性(實際上就是呼叫getsize方法)

print

(r.size)

# 結果如下:

getsize例項方法(30

,40)

class

rectangle

:def

__init__

(self, width, height)

: self.width = width

self.height = height

# 使用裝飾器合成了乙個唯讀屬性,此時唯讀屬性名與方法名相同

@property

# 由於沒有任何引數,預設為唯讀屬性

defgetarea

(self)

:print

("getarea方法"

)return self.width * self.height

@property

defsetsize

(self)

:print

("setsize方法"

)return self.width, self.height

@setsize.setter # 這樣是裝飾出了setter方法

defsetsize

(self, size)

:print

("setsize方法"

) self.width = size[0]

self.height = size[1]

r = rectangle(30,

40)print

(r.getarea)

print

(r.setsize)

# 結果如下:

getarea方法

1200

setsize方法(30

,40)

python3學習筆記 物件導向

python物件導向也是通過類的機制實現。python類的語法如下。class example 基本屬性 property1 0 property2 私有屬性,類外不能被訪問 property3 屬性p4在上面沒有顯示宣告。可通過建構函式直接宣告並初始化。def init self,p1,p2,p3...

Python學習筆記 物件導向

物件導向 oop 基本概念 物件導向程式設計 object oriented programming簡寫 oop 1 物件導向基本概念 之前的學習程式設計方式就是面向過程的 面向過程和物件導向,是兩種不同的程式設計方式 對比面向過程的特點,可以更好的了解什麼是物件導向 2 過程和函式 科普 過程是最...

python3 物件導向學習

類物件支援兩種操作 屬性引用和例項化。屬性引用使用和 python 中所有的屬性引用一樣的標準語法 obj.name。類物件建立後,類命名空間中所有的命名都是有效屬性名。所以如果類定義是這樣 usr bin python3 class myclass 乙個簡單的類例項 i 12345 def f s...