python面向对象之property属性

property

可以把方法变成属性 : 可以动态的控制属性的获取,设置,删除相关操作
@property 获取属性
@方法名.setter 设置属性
@方法名.deleter 删除属性

方法一

是同一个方法名

python面向对象之property属性python面向对象之property属性
class MyClass():

    def __init__(self,name):
        self.name = name

    @property
    def username(self):
        return self.name
        # pass

    @username.setter
    def username(self,val):
        # print(val)
        self.name = val
        pass

    @username.deleter
    def username(self):
        # print("222")
        del self.name
        pass

obj = MyClass("小红")
获取值的时候自动触发@property 装饰器下的方法
res = obj.username
print(res)

设置值的时候自动触发@username.setter 装饰器下的方法
obj.username = "小兰"
print(obj.username)

删除值的时候自动触发@username.deleter 装饰器下的方法
del obj.username
print(obj.username)

View Code

方法二

python面向对象之property属性python面向对象之property属性
class MyClass():

    def __init__(self,name):
        self.name = name

    # 获取数据
    def get_username(self):
        return self.name

    # 设置数据
    def set_username(self,val):
        self.name = val

    # 删除数据
    def del_username(self):
        del self.name

    # 参数的顺序: 获取 , 设置  , 删除
    username = property(get_username , set_username  , del_username )

obj = MyClass("小芳")
获取值的时候,执行get_username下的相关操作
print(obj.username)

设置值的时候,执行 set_username 下的相关操作
obj.username = "11223344"
print(obj.username)

删除值的时候,执行 del_username 下的相关操作
del obj.username
print(obj.username)

View Code

Original: https://www.cnblogs.com/shuaiyao666/p/16079947.html
Author: 小帅同学啊
Title: python面向对象之property属性

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/596849/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球