python笔记12 类的成员,property装饰器

python笔记12 类的成员,property装饰器

先声明一下
各位大佬,这是我的笔记。
如有错误,恳请指正。
另外,感谢您的观看,谢谢啦!

在这里插入图片描述

嗯,processon真好用

下面来用实例举例

class test():
    str0 = '我是静态字段,是大家共享的'
    def __init__(self):
        self.str01 = '我是普通字段为对象特有,也只有对象能更改我'
    def test01(self):
        print(self.str01)
    @staticmethod
    def test02():
        str03 = '我是静态方法,对象和类都可以调用我'
        print(str03)
    @classmethod
    def test03(cls):
        print('我是类方法,对象和类都可以调用我')

li1 = test()
print(test.str0)
print(li1.str0)
print(li1.str01)
li1.test01()
li1.test02()
li1.test03()
我是静态字段,是大家共享的
我是静态字段,是大家共享的
我是普通字段为对象特有,也只有对象能更改我
我是普通字段为对象特有,也只有对象能更改我
我是静态方法,对象和类都可以调用我
我是类方法,对象和类都可以调用我

property装饰器

这个装饰器可做到以调用变量的形式,调用函数,非常的方便,

它有两种编写方法接下来一一介绍

class test():
    def __init__(self):
        self.num = 1
    @property
    def test02(self):
        print(f'--{self.num}--')
l1 = test()
l1.test02
--1--

这是让你可以用访问变量的形式访问这个方法

那么既然是变量就应该有修改值,和删除的的操作

class test():
    def __init__(self):
        self.num = 1
    @property
    def test02(self):
        print(f'--{self.num}--')
    @test02.setter
    def test02(self,num):
        print(f'--{num}--')
    @test02.deleter
    def test02(self):
        print(f'--{num}--')
        del self.num
        print(f'--{num}--')
l1.test02 = 2

这条语句就可以进入有setter装饰器的函数中

--2--
del l1.test02

这条语句就会进入有着deleter装饰器的函数中

--2--
NameError: name 'num' is not defined

结果报错了却恰恰说明删除成功了

不过property还有另一种编写方法

class test():
    def __init__(self):
        self.__num = 1

    def get_num(self):
        print(f'--{self.__num}--')
        return self.__num
    def set_num(self,num):
        print(f'--{num}--')
    def del_num(self):
        print(f'--{__num}--')
        del self.num
        print(f'--{__num}--')
    num = property(fget=get_num,fset=set_num,fdel=del_num)

l1 = test()

l1.num
l1.num =9
--1--
--9--
del l1.num
--9--
NameError: name 'num' is not defined

1 = test()

l1.num
l1.num =9


–1--
–9--


del l1.num


–9--
NameError: name ‘num’ is not defined


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值