如何实例化UseInternalClass类型的变量
MyInstance = ParentClass.UseInternalClass(something=ParentClass.InternalClass({1:2}))
如果我尝试使用以前的代码,我会收到错误
NameError: name 'ParentClass' is not defined
当我想实例化一种嵌套类
时class ParentClass(object):
class InternalClass(object):
def __init__(self, parameter = {}):
pass
pass
class UseInternalClass(object):
_MyVar
def __init__(self, something = ParentClass.InternalClass()): #meant to make something type = InternalClass
_MyVar = something
pass
(所有代码都在同一个文件中)
答案 0 :(得分:1)
你不能使用" ParentClass"在父类的定义内,因为解释器还没有定义名为ParentClass的类对象。此外,在完全定义ParentClass类之前,不会定义InternalClass。
注意:我要注意你要做的是什么,但是如果你解释了你的最终目标,我们可能会建议你做一些事情来实现这一点。
答案 1 :(得分:0)
您可以这样做:
class Child:
def __init__(self, y):
self.y = y
class Parent:
def __init__(self, x):
self.x = x
y = 2 * x
self.child = Child(y)
例如,您创建Parent
类的实例,然后按如下方式访问其Child
:
par = Parent(4)
par.child.y # returns a value of 8
答案 2 :(得分:0)
我不确定我是否正确,但是我是否要尝试做类似的事情
class Parent:
class Child:
def __init__(self,passed_data):
self.data = passed_data
class AnotherChild:
def __init__(self,child=Parent.Child("no data passed"))
self.child_obj = self.Child(data_to_pass)
您可以如下创建AnotherChild对象
another_child = Parent.AnotherChild()
# here it will use the default value of "no data passed"
或者您可以按照以下步骤进行操作
child = Parent.Child("data") # create child object
another_child = Parent.AnotherChild(child) # pass it to new child
或直接通过您的 init
another_child = Parent.AnotherChild(Parent.Child("data"))
我想如果您在同一个文件中实例化该文件(例如parent.py),它应该可以正常工作 我不确定您想要的是什么,但希望对您有帮助