Python @property 属性

Python @property 修饰符

python的property()函数,是内置函数的一个函数, 会返回一个property的属性: 可以在以下网页查看它的描述:property

文档上面说property()作为一个修饰符, 这会创建一个只读的属性.

class Parrot:
    def __init__(self):
        self._voltage = 100000

    @property
    def voltage(self):
        """Get the current voltage."""
        return self._voltage

在这里面, @property修饰符会将voltage()方法转变为一个对于只读的属性"getter", 它还会将voltage的docstring设置为"Get the current voltage"

class C:
    def __init__(self):
        self._x = None

    @property
    def X(self):
        """I‘m the ‘x‘ property."""
        return self._x

    @X.setter
    def X(self, value):
        self._x = value

    @X.deleter
    def X(self):
        del self._x

c = C()
c.X = 2
print(c.X)
print(c._x)
# 2
# 2

这个代码也能够使用非修饰符的方法来写, 请看下面

class C:
    def __init__(self):
        self._x = None

    def getx(self):
        return self._x

    def setx(self, value):
        self._x = value

    def delx(self):
        del self._x

    X = property(getx, setx, delx, "I‘m the ‘x‘ property.")

c = C()
c.X = 2
print(c.X)
print(c._x)
# 2
# 2

这两段代码的意思, 就是通过property()设置了一个管理self._x的属性的函数, 以后管理_x, 都可以通过X这个property对象.

时间: 2024-11-11 13:23:10

Python @property 属性的相关文章

Python——@property属性描述符

@property 可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/getter也是需要的 假设定义了一个类Cls,该类必须继承自object类,有一私有变量__x 1. 第一种使用属性的方法: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #!/usr/bin/env python # -*- coding: utf-8 -*- # blog.i

python property属性

能够检查參数,一直没注意这个语言特性,忽略了非常多细节,感谢 vitrox class Person( object ): def __init__( self, name ): if not isinstance( name, str ): raise TypeError( '...' ) else: self.__name = name @property def name( self ): print 'get name.' return self.__name @name.setter

property属性[Python]

一.property解释 根据文档资料解释: property([fget[, fset[, fdel[, doc]]]]) Return a property attribute for new-style classes (classes that derive from object) 使用这个内建函数时,类必须继承object,才有效. property有可选参数fget, fset, fdel, doc.fget是获取值函数,fset是设置函数值,fdel是删除函数,doc文档说明.

python中的property属性

目录 1. 什么是property属性 2. 简单的实例 3. property属性的有两种方式 3.1 装饰器方式 3.2 类属性方式,创建值为property对象的类属性 4. property属性-应用 4.1. 私有属性添加getter和setter方法 4.2. 使用property升级getter和setter方法 4.3. 使用property取代getter和setter方法 1. 什么是property属性 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 # #

Python中property属性详解

1. 什么是property属性 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 # ############### 定义 ############### class Foo: def func(self): pass # 定义property属性 @property def prop(self): pass # ############### 调用 ############### foo_obj = Foo() foo_obj.func() # 调用实例方法 foo_obj.p

【转】python之property属性

1. 什么是property属性 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 # ############### 定义 ############### class Foo: def func(self): pass # 定义property属性 @property def prop(self): pass # ############### 调用 ############### foo_obj = Foo() foo_obj.func() # 调用实例方法 foo_obj.p

python property

python property 在2.6版本中,添加了一种新的类成员函数的访问方式--property. 原型 class property([fget[, fset[, fdel[, doc]]]]) fget:获取属性 fset:设置属性 fdel:删除属性 doc:属性含义 用法 1.让成员函数通过属性方式调用 class C(object): def __init__(self): self._x = None def getx(self): return self._x def set

Python @property 详解

本文讲解了 Python 的 property 特性,即一种符合 Python 哲学地设置 getter 和 setter 的方式. Python 有一个概念叫做 property,它能让你在 Python 的面向对象编程中轻松不少.在了解它之前,我们先看一下为什么 property 会被提出. 一个简单的例子 比如说你要创建一个温度的类Celsius,它能存储摄氏度,也能转换为华氏度.即: class Celsius: def __init__(self, temperature = 0):

Python中“*”和“**”的用法 || yield的用法 || ‘$in’和'$nin' || python @property的含义

一.单星号 * 采用 * 可将列表或元祖中的元素直接取出,作为随机数的上下限: import random a = [1,4] print(random.randrange(*a)) 或者for循环输出: import random a = [1,4] for i in range(*a): print(i) ''' result : 1 2 3 ''' 二.双星号 ** 双星号 ** 可将字典里的“值”取出,如下例 class Proxy(object): def __init__(self,