Python学习之旅(十九)

Python基础知识(18):面向对象高级编程(Ⅰ)

使用__slots__:限制实例的属性,只允许实例对类添加某些属性

(1)实例可以随意添加属性

(2)某个实例绑定的方法对另一个实例不起作用

(3)给类绑定方法市所有类都绑定了该方法,且所有实例都可以调用该方法

用__slots__定义属性反对这个类的实例起作用,但对这个类的子类是不起作用的
>>> class Student(object):
    __slots__=("name","age")

    
>>> s=Student()
>>> s.name="Jack"
>>> s.score=90
Traceback (most recent call last):
  File "<pyshell#43>", line 1, in <module>
    s.score=90
AttributeError: 'Student' object has no attribute 'score'

 

使用@property:把方法变成属性来调用

@property是Python内置的装饰器

>>> class Student(object):
    @property
    def test(self):
        return self.name
    @test.setter
    def test(self,name):
        self.name=name

        
>>> s=Student()
>>> s.test="Alice"
>>> print(s.test)
Alice

 

多重继承

通过多重继承,子类可以同时获得多个父类的所有功能

>>> class Run(object):
    def run():
        print("I can run.")

        
>>> class Fly(object):
    def fly():
        print("I can fly.")

        
>>> class Swim(object):
    def swim():
        print("I can swim.")

        
>>> class Duck(Run,Fly,Swim):
    pass

 

Mixln:允许使用多重继承的设计

转载于:https://www.cnblogs.com/finsomway/p/10042212.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值