看下面的例子:
class People:
def __init__(self, home):
self.home = home
self.name = 'Ankit'
self.set_add()
def set_add(self):
self.add = self.home.add
class Home:
def __init__(self):
self.add = 'Jaipur, Rajasthan'
def get_add(self):
people = People(self)
print(people.add)
pass
home = Home()
home.get_add()
在这里,我必须传递self
参数来访问父对象引用。
有什么方法可以在不传递任何参数的情况下访问父对象引用。
编辑:如果没有得到
看一下类__init__
中的People
函数,在这里我为该类的对象分配了引用,在该引用中创建了“ People”类的对象,然后在set_add
中方法,在其中创建add
类的对象的该类的对象的People
。
所有这些事情都是可能的,因为我正在传递创建该类People
的对象的类的引用,正如您在get_add
的{{1}}方法中看到的那样类,同时创建Home
类的对象时,我要传递People
,无论何时将创建self
类的对象,都将作为Home
类的对象的引用。
但是我想要我不想传递任何参数。因此,有没有一种方法可以使我在其他类中创建对象时不传递任何参数的情况下完成相同操作。
答案 0 :(得分:0)
您已经将self
(实例化的Home()
对象,在这种情况下为home
)作为类{{1}的初始化程序的home
自变量的值进行了传递}}。
Home
,即实例被隐式传递,并且您再次使用self
来使类初始化程序如下:
self
此外,类之间没有父子关系,因为它们之间没有关系,您所使用的就像合成。也许您打算传递People.__init__(self, self)
(貌似一个地址):
self.add
同样,您的类定义中有许多不清楚的内容,如果不完全理解它们,就很难得出正确的结论。