繁体   English   中英

如何在不传递参数'self'的情况下在python中获取父对象引用?

[英]How get parent object reference in python with out passing argument 'self'?

看下面的例子:

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参数来访问父对象引用。 有没有什么方法可以在不传递任何参数的情况下访问父对象引用。

编辑:如果没有得到它,请查看类People中的__init__函数,在此我为该类的对象分配了引用,该类在其中创建了类“ People”的对象,然后在set_add方法中add在其中创建People类的对象的该类对象的。

所有这些事情都是可能的,因为我正在传递创建People类的对象的类的对象的引用,正如您在创建People类的对象时在Home类的get_add方法中看到的get_add ,我正在传递将作为引用的self每当将创建Home类的对象时, Home类的对象的值。

但是我想要我不想传递任何论点。 因此,有没有其他我可以在其他类中创建对象时不传递任何参数的方法。

你通过self (实例化的Home()对象, home在这种情况下)作为价值home类的initilizer的说法Home

self即实例)是隐式传递的,您再次使用了self使类初始化器如下:

People.__init__(self, self)

另外,类之间没有父子关系,因为它们之间没有关系,您所使用的就像合成。 也许您打算传递self.add (看似地址):

people = People(self.add)

同样,您的类定义中有许多不清楚的内容,如果不完全理解它们,很难得出正确的结论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM