大家好,又是一个新的周一啊,今天给大家说一下Python的属性property的使用,raksmart服务器。
在面向对象编程的时候,我们定义一个Person类
class Person:
def __init__(self):
self.age = 22
这样写法能够方便的访问属性age,
p = Person()
print p.age ==>22
p.age = 30
print p.age ==>30
这样写起来虽然很简单,但是没有参数检验(eg,输入非数值,输入过大的数值)。
写过Java的人知道,在Java有一种类叫做实体类(entity,javabean等),它们一般不提供其他复杂的方法只提供简单的getter和setter等方法。如下例子
同理我们可以按照这个思路来编写python代码
这样写就完善很多,参数不会被随意更改了。访问age的时候需要使用p.get_age(),但这种写法不够pythonic,强大的python提供了@property方法,方法如下
这里面有一点需要注意,就是在自定义类的时候需要使用新式类,即继承了object
领取专属 10元无门槛券
私享最新 技术干货