Python---property笔记

在定义类的属性的时候我们会定义一些私有属性,私有属性我们并不能直接去修改,我们需要定义一个共有方法去修改这些私有属性。

class Person:
    def __init__(self,name,age):
        self.name = name
        self.__age = age

    def getage(self):
        print(self.__age)
    def setage(self,age):
        slef.__age = age

在调用这些方法的时候,会产生很多的麻烦,看着不舒服,用起来也比较烦人。

if __name__ == '__main__':
    p = Person("小红",18)
    
    p.name="小绿"
    print(p.name)
    
    p.setage(20)
    p.getage()

这个时候我们可以使用property修饰器,使方法作为属性来用,如果做property,那么这个属性就是一个只读属性,想要将方法变成属性赋值,需要引用另一个装饰器@age.setter.我们在对实例尚属性进行操作时,其实通过getter和setter方法去实现的。如果只定义getter不定义setter,那么这个属性就是一个只读属性。

class Person:
    def __init__(self,name,age):
        self.name = name
        self.__age = age
    @property
    #可以将方法当做属性去用
    def age(self):
        return self.__age

    @age.setter
    #固定写法
    def age(self,age):
        self.__age = age

    def tel(self):
        return self.__age

if __name__ == '__main__':
    p = Person("小红",18)

    p.name="小绿"
    print(p.name)

    p.age = 20
    print(p.age)

    print(p.tel())

 

F:\学习代码\Python代码\venv\Scripts\python.exe F:/学习代码/Python代码/day5/ceshi.py
小绿
20
20

Process finished with exit code 0

这样我们就可以和普通的属性一样随心所欲的定义了,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值