ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

通过@property装饰器将类方法进行装饰

2021-08-02 14:01:34  阅读:129  来源: 互联网

标签:.__ name age 装饰 property 方法 self def


@property
 通过property装饰器将类方法进行装饰,这样调用类方法时,看起来就像是直接调用了属性来得到值,调用方法时方法不用加()

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

    @property
    def age_property(self):
        return self.__age + "...."

    @age_property.setter
    def age_property(self, newage):
        self.__age = newage


p = person("年龄23")
print(p.age_property)
p.age_property = "年龄18"
print(p.age_property)

#  property应用实例

class Goods(object):
    dicount = 0.5

    def __init__(self, name, price):
        self.name = name
        self.__price = price

    @property
    def price(self):
        return self.__price * Goods.dicount
apple = Goods('苹果', 5)
print(apple.price)  # 直接通过实例访问属性,从而来调用方法

删除类的属性和修改类的属性

class person:
    def __init__(self, name):
        self.__name = name

    @property
    def name_property(self):
        return self.__name

    @name_property.deleter
    def name_property(self):
        del self.__name

    @name_property.setter
    def name_property(self, newname):
        self.__name = newname


p1 = person("jack")
print("修改前的属性值:", p1.name_property)  # 直接通过实例访问属性,从而来调用方法
# 修改类的属性
p1.name_property = "janme"
print("修改后的属性值:", p1.name_property)

# 删除类的属性
del p1.name_property

# print(p1.name_property)

# 检查Python是否是Python3
import torch

print(torch._six.PY3)

输出: 

年龄23....
年龄18....
2.5
修改前的属性值: jack
修改后的属性值: janme
True

标签:.__,name,age,装饰,property,方法,self,def
来源: https://blog.csdn.net/qq_37164776/article/details/119274039

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有