欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python学习之旅(十九)

程序员文章站 2022-12-23 08:18:57
Python基础知识(18):面向对象高级编程 使用__slots__:限制实例的属性,只允许实例对类添加某些属性 (1)实例可以随意添加属性 (2)某个实例绑定的方法对另一个实例不起作用 (3)给类绑定方法市所有类都绑定了该方法,且所有实例都可以调用该方法 用__slots__定义属性反对这个类的 ......

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:允许使用多重继承的设计