学堂 学堂 学堂公众号手机端

Python中property的使用方式是怎样的,如何做

lewis 6年前 (2019-06-16) 阅读数 11 #技术
这篇文章主要讲解了“Python中property的使用方式是怎样的,如何做”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。


property是一个类,可以把一个方法当做属性进行使用,这样做可以简化代码使用。

实际上就是装饰类中属性的getter setter方法,使得属性可以通过 对象.属性 的方式获取或设置

使用property的两种方式

装饰器方式 类属性方式

2. 装饰器方式

@property 修饰获取的方法getter, 方法名必须和属性名一样

@age.setter 修饰设置值的方法setter, 方法名必须和属性名一样

class Person(object):

    def __init__(self):
        self.__age = 0

    # 装饰器方式的property, 把age方法当做属性使用, 表示当获取属性时会执行下面修饰的方法
    @property
    def age(self):
        return self.__age

    # 把age方法当做属性使用, 表示当设置属性时会执行下面修饰的方法
    @age.setter
    def age(self, new_age):
        if new_age >= 150:
            print("成精了")
        else:
            self.__age = new_age

# 创建person
p = Person()
print(p.age)
p.age = 100
print(p.age)
p.age = 1000

运行结果:

0
100
成精了

说明:

@property 表示把方法当做属性使用, 表示当获取属性时会执行下面修饰的方法 @方法名.setter 表示把方法当做属性使用,表示当设置属性时会执行下面修饰的方法 装饰器方式的property属性修饰的方法名一定要和属性名一样。

3. 类属性方式

class Person(object):

    def __init__(self):
        self.__age = 0

    def get_age(self):
        """当获取age属性的时候会执行该方法"""
        return self.__age

    def set_age(self, new_age):
        """当设置age属性的时候会执行该方法"""
        if new_age >= 150:
            print("成精了")
        else:
            self.__age = new_age

    # 类属性方式的property属性
    age = property(get_age, set_age)

# 创建person
p = Person()
print(p.age)
p.age = 100
print(p.age)
p.age = 1000

运行结果:

0
100
成精了

代码说明:

property的参数说明: 第一个参数是获取属性时要执行的方法 第二个参数是设置属性时要执行的方法
现在大家对于Python中property的使用方式是怎样的,如何做的内容应该都有一定的认识了吧,希望这篇能对大家有所帮助。最后,想要了解更多,欢迎关注博信,博信将为大家推送更多相关的文章。
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门