我一直在努力理解python的OOP实现。
基本上我需要一些超类来定义一些全局属性,其他类也可以用作其方法的输入。例如:
这就是我认为应该这样做的方式:
class One():
def __init__(self, name):
self.name = name
class Two(One):
def __init__(self, name): # name from class one...
One.__init__(self, name)
def method_using_name_from_one(self, name_from_one):
return name_from_one
我想我可以通过在类Two
中声明所有方法来实现这一点,就像在第一类方法中那样,但我更喜欢将它们分开。所以回顾一下:我希望第二类中方法的参数使用类One
中声明的属性。所以基本上我想传入一个实例化对象作为类Two
方法的参数参数。
答案 0 :(得分:0)
当你说
时class Two(One):
一个不是class Two
的参数。这意味着第二类继承自第一类。换句话说,除非你重写一个方法,否则它会获得一个类所拥有的所有东西。 编辑:当我这样说时,我指的是参数和函数,我不是指该类的实例。既然你有:
def __init__(self, name): # name from class one...
One.__init__(self, name)
self.name在class Two.
换句话说,你可以说......
def method_using_name_from_one(self):
return self.name
我建议的一件事是将你的一级声明改为:
class One(object):
这意味着它继承自object,它并不意味着它传递了一个对象:) 这是你的意思吗?也许我没有正确理解。
如果你想要One,
的名字参数,你可以说
def method_using_name_from_one(self, oneInstance):
return oneInstance.name