码迷,mamicode.com
首页 > 编程语言 > 详细

python中property的使用

时间:2021-01-11 10:43:38      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:属性   ini   int   person   style   结果   作用   col   get   

1. property的作用

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

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

 

使用property的两种方式

  1. 装饰器方式
  2. 类属性方式

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的使用

标签:属性   ini   int   person   style   结果   作用   col   get   

原文地址:https://www.cnblogs.com/liuxuelin/p/14248722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!