Python 类

发布时间:2024年01月17日

一、属性和方法

举例:

class Person:
    def set_name(self,name):
        self.name=name
    def get_name(self):
        return self.name
    def greet(self):
        print("Hello,world!I am {}.".format(self.name))

不同实例的属性值互不影响

class MemberCounter:
    members=0
    def init(self):
        MemberCounter.members +=1

二、超类与子类

继承以及方法重写

class Filter:
    def init(self):
        self.blocked=[]
    #     过滤器
    def filter(self,sequence):
        # 迭代+判断
        return [x for x in sequence if x not in self.blocked]
class SPAMFilter(Filter): #SPAMFilter是Filter的子类
    def init(self):#重写init方法
        self.blocked=['SPAM']

内置函数


所有的类都继承object

前者是不是后者的实例

返回对象的类两种方法

三、多重继承

class Calculator:
    def calculator(self,expression):
        self.value=eval(expression)
class Talker:
    def talk(self):
        print('Hi , my value is',self.value)
class TalkingCalculator(Calculator,Talker):
    pass

四、抽象基类

from abc import ABC,abstractmethod
class Talker(ABC):
    @abstractmethod
    def talk(self):
        pass
class Knigget(Talker):
    def talk(self):
        print("Ni!")

虽然没有继承关系,但是方法一致,就可以通过register注册

没有继承的空类并不能直接使用其他类的方法

from abc import ABC,abstractmethod
class Talker(ABC):
    @abstractmethod
    def talk(self):
        pass
class Knigget(Talker):
    def talk(self):
        print("Ni!")
class Herring:
    def talk(self):
        print("Blub.")
class Clam:
    pass

文章来源:https://blog.csdn.net/weixin_55731208/article/details/135592607
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。