物件導向之裝飾器

2022-08-29 10:39:13 字數 894 閱讀 3047

可以通過@property的getter和setter方法修改物件的屬性值。

class person(object):

def __init__(self, name, age):

self._name = name

self._age = age

# 訪問器 - getter方法

@property

def name(self):

return self._name

@property

def age(self):

return self._age

# 修改器 - setter方法

@age.setter

def age(self, age):

self._age = age

@name.setter

def name(self, name):

self._name = name

def play(self):

if self._age <= 16:

print('%s正在玩飛行棋.' % self._name)

else:

print('%s正在玩鬥地主.' % self._name)

def main():

person = person('王大錘', 12)

person.play()

person.name = '白元芳'

person.age = 22

person.play()

if __name__ == '__main__':

main()

輸出:王大錘正在玩飛行棋.

白元芳正在玩鬥地主.

物件導向之類裝飾器

property是一種特殊的屬性,訪問它時會執行一段功能 函式 然後返回值 class student def init self,name,birth self.name name self.birth birth property 將乙個方法偽裝成屬性 defage self import ti...

類和物件導向程式設計OOP之裝飾器

裝飾是為函式和類指定管理和擴增 的一種方式,裝飾器本身採取可呼叫物件的方式,處理其他可呼叫物件。簡而言之,裝飾器提供了一種方式,在函式和類定義語句結束時插入自動執行的 對於函式裝飾器,在def語句結束時插入,對於類裝飾器,在class語句結束時插入,函式裝飾器是一種關於函式的執行時宣告,函式的定義需...

php物件導向之裝飾模式

裝飾模式重視 的組合和委託,輕鬆的實現合併物件,在 普通的方法是 定義基類 abstract class title 子類實現 class plains extends title 如果存在鑽石增加金幣 class diamondplains extends plains 如果被汙染則減少金幣 cl...