【发布时间】:2011-12-13 21:40:03
【问题描述】:
当成员类是外部模块的一部分时,我在试图弄清楚如何让成员类从其父类访问数据时遇到了停顿。
基本上,这是可行的(B类可以访问的是父类的方法,如下所示: A.say_hi(A) ):
class A:
def __init__(self):
print("Initializing parent object...")
self.child = self.B()
class B:
def __init__(self):
print("Initializing child...")
A.say_hi(A)
def say_hi(self):
print("A class says hi")
但是,如果类开始变得特别大,这可能会变得非常混乱,因此我一直将我的其他类放在文件中并内联导入它们。问题是如果我在定义类 B 时尝试使用“import B.py”,我将无法再让成员类访问其父类的成员和函数。
有没有办法在不将成员类与父类放在同一个文件中的情况下获得原始行为?
【问题讨论】:
-
你用的是什么python版本?在 2.7 中它不起作用,因为您将 A(类)传递给预期 A 实例的位置
-
你的缩进是否正确?它似乎不是。 “B 类可以访问的是父类的方法,如下所示:A.say_hi(A)”根本没有任何意义。因为
A.say_hi(A)是非常非常奇特的Python。你对继承感到困惑吗?这是你的问题吗? -
@soulcheck 它在 py3k 中工作,(缩进如帖子中所示)
标签: python class import namespaces member