python類與物件 如何建立可管理的物件屬性

2021-09-25 19:17:03 字數 1023 閱讀 7819

問題舉例

在物件導向程式設計中, 我們把方法看作物件的介面,

直接訪問物件的屬性可能是不安全的,或設計上不夠靈活。

但是使用呼叫方法在形式上不如訪問屬性簡潔。

circle.get_radius()

circle.set_radius(5.0)  #繁瑣

circle.radius

circle.radius = 5.0    #簡潔

能否在形式上是屬性訪問,但實際上是內部呼叫方法?

使用property函式為類建立可管理屬性,fget/fset/fdel對應相應屬性訪問。

**

import

math

class

circle:

def__init__

(self, radius):

self.radius =radius

defget_radius(self):

return round(self.radius, 1)

defset_radius(self, radius):

ifnot

isinstance(radius, (int, float)):

raise typeerror('

wronge type')

self.radius =radius

@property

defs(self):

return self.radius ** 2 *math.pi

@s.setter

defs(self, s):

self.radius = math.sqrt(s /math.pi)

r =property(get_radius, set_radius)

c = circle(5.712)

c.s = 99.88

print

(c.s)

print

(c.r)

#print(c.get_radius())

#c.radius = '31.98

python類與物件 如何建立可管理的物件屬性

問題舉例 在物件導向程式設計中,我們把方法看作物件的介面,直接訪問物件的屬性可能是不安全的,或設計上不夠靈活。但是使用呼叫方法在形式上不如訪問屬性簡潔。circle.get radius circle.set radius 5.0 繁瑣 circle.radius circle.radius 5.0...

Python定義類與建立物件

目錄 1.定義類 2.建立與使用物件 物件也稱為例項 1 增加或刪除例項變數 2 增加例項方法 物件導向程式設計的三大特徵 封裝 繼承 多型 語法格式 語法格式 class 類名 執行語句.類變數.方法.類名 乙個或者多個單詞連線而成,每個單詞首字母大寫,其餘字母全部小寫,單詞與單詞之間不使用分隔符...

js如何建立可迭代物件

如何設計乙個迭代器 迭代器的本身是乙個物件,這個物件有netx 方法返回結果物件,這個結果物件有下乙個返回值value 迭代器完成布林值done,模擬建立乙個簡單迭代器 每次呼叫迭代器的next 都會返回下乙個物件,直到資料被用盡。es6中迭代器的編寫過程類似,但引入了生成器物件,更簡單的建立迭代器...