【发布时间】:2017-08-11 14:28:57
【问题描述】:
如果我有这种情况:
class Foo(object):
def __init__(self):
self.bar = Bar()
def do_something(self):
print 'doing something'
class Bar(object):
def __init(self):
self.a = 'a'
def some_function(self):
我想在 some_function 函数中调用 do_something 函数,但是这个函数不属于这个类,我该怎么做才能调用这个函数? 我不想将它与 Foo().do_something 一起使用,还有另一种选择吗? 我不想创建新实例
另一个例子:
class A(object):
def __init__(self):
self.content = 'abcdabcabcabc'
self.b = self.B()
self.c = self.C()
def some_function(self):
print self.content
class B(object):
def foo(self):
A.some_function()
class C(object):
def foo(self):
A.some_function()
【问题讨论】:
-
Foo不是Bar的“父母”。 Python 中的嵌套类并没有真正为您带来任何好处,只是多了一层作用域。 -
如果您不想将其作为实例方法调用,则不要将其设为实例方法。
-
我用另一个例子编辑我的问题,最好的方法是什么?
-
你不应该使用嵌套类开始,正如我在这里所说的:stackoverflow.com/questions/42326408/…
标签: python python-2.7 class oop inner-classes