class SB: def __init__(self,**kwargs): #通过传递任意数量的关键字参数来实例化这个类的对象。这些关键字参数将在对象创建时被收集到一个字典中,并可以通过kwargs在__init__方法内部访问。 for key,value in kwargs.items(): setattr(self, key, value) #setattr()是一个内置函数,用于设置对象的属性值。它接受三个参数:对象、属性名(作为字符串)和属性值 #通过以上方式完成任意对象的实例化 def SB_Attack(self,**kwargs): #通过kwargs传递任意个参数,并可以在函数中访问 GJZ=self.GJV-2 SMZ=self.SMV-2 print(f"SMV is {GJZ} GJZ is {SMZ}") class JG(SB): def __init__(self, **kwargs): for key,value in kwargs.items(): setattr(self, key, value) super().__init__(**kwargs)#通过super继承父类的init里的属性 def JG_Attack(self,**kwargs): super().SB_Attack()#通过super继承父类的方法 SB=SB(GJV=10,SMV=8) JG=JG(GJV=16,SMV=14) # SB.SB_Attack() JG.JG_Attack()
运行结果:
C:\Users\uic75642\TryClass\Scripts\python.exe C:/Users/uic75642/Desktop/TryClass/Class.py
SMV is 14 GJZ is 12
Process finished with exit code 0