Day13 面向对象(下)

property装饰器

我们可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止属性被修改

class roo():
    print("123")
    def __init__(self,name):
        self.—_name=name
    @property
    def name(self):
        print("456")
        return self._name
ro=roo("Pythons")
print(ro.name)

加上property装饰器之后,在调用方法的时候可以不用写括号。

setter装饰器

class roo():
    print("123")
    def __init__(self,name):
        self._name=name
    @property
    def name(self):
        print("456")
        return self._name
    @name.setter
    def name(self,na):
        print("789")
        self._name=na
ro=roo("巩")
print(ro.name)
ro.name="旺仔"
print(ro.name)

setter装饰器必须在property装饰器后边
property装饰器会把成员函数x转换为getter,相当于做了x = property(); x = x.getter(x_get)
在运行时可以不用写括号。
x.setter装饰器会把成员函数x转换为setter,相当于做了x = x.setter(x_set).
可以看到我们实现了通过属性x来对私有变量_x进行操作。
在调用时,可以直接用等号赋值。

继承

• 继承是面向对象三大特性之一
• 通过继承我们可以使一个类获取到其他类中的属性和方法
• 在定义类时,可以在类名后面的括号中指定当前类的父类(超类、基类)
• 继承提高了类的复用性。让类与类之间产生了关系。有了这个关系,才有了多态的特性
所有类的父类都是object

class fa():  #定义一个父类
    print("123")     
class so(fa):         #定义一个子类,在括号里写上fa,表示父类是fa
    print("456")
s=so

如果子类和父类的属性或方法名称相同,当子类调用时,先从子类中查找

super的用法
super()用来查找父类中的方法

class animal():  #定义一个父类
    print("123")
    def one(self):
        print("这是父类的一个方法")
class dog(animal):         #定义一个子类,在括号里写上fa,表示父类是fa
    print("456")
    def two(self):
        print("运行two")
        super().one()
do=dog()
do.two()

运行two
这是父类的一个方法

多重继承

class a():
    def x(self):
        print("12300")
class b():
    def x(self):
        print("79847448")
class c(a,b):
    pass
cc=c()
cc.x()

类方法和静态方法

class room():
    @classmethod
    def one(cls):
        print("这是类方法")
    @staticmethod
    def one():
        print("这是静态方法")

静态方法和这个类没有关系,不需要指定任何参数,实例对象和类对象都可以调用静态方法,金泰方法就相当于一个功能函数,存放在类中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值