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...