首页 > 代码库 > python继承

python继承

class Base:
def base_print(self):
print(‘base‘)
class A(Base): # 在类名后加括号 括号中是继承列表, 称之为父类或者基类或者超类
def a_print(self):
print(‘a‘)
a=A()
print(a.a_print())
print(a.base_print())
#继承获取父类的属性和方法

凡是公有的都能继承
凡是私有的都不能继承
原来是什么,继承过来还是什么

#方法重写
class Base:
def __init__(self):
self.__a = 4
def print(self):
print(‘Base.print‘)
@classmethod
def cls_print(cls):
print(‘Base.cls_print‘)
class Sub(Base):
def print(self): ## 当子类和父类有同名成员的时候, 子类的成员会覆盖父类的同名成员
print(‘Sub.print‘)

#super
class Sub(Base):
def print(self): ## 当子类和父类有同名成员的时候, 子类的成员会覆盖父类的同名成员
print(‘Sub.print‘)

@classmethod
def cls_print(cls):
print(‘Sub.cls_print‘)

def foo(self):
# self.print() # 调用父类的print
super().print()
# super(Sub, self).print()

@classmethod
def cls_foo(cls):
#cls.cls_print()
#Base.cls_print()
super().cls_print()

class Base:
def __init__(self,a,b):
self.a=a
self.b=b
def sum(self):
return self.a+self.b

class Sub(Base):
def __init__(self,a,b,c):
self.c=c
super().__init__(a,b)
sub=Sub(1,2,3)
print(sub.sum())
#当父类含有一个带参数的初始化方法的时候,子类一定需要一个初始化方法,并且在初始化方法中调用父类的初始化方法


class Base:
NAME = ‘BASE‘

class Sub(Base):
NAME = ‘SUB‘

def print(self):
print(self.NAME)
print(super(Sub, Sub).NAME) # 获取父类的类变量
print(Base.NAME)
super 对象只能获取类的属性

 

python继承