在内部使用类是否被认为是不好的做法? 例如:
class Foo:
def __init__(self, b=None):
"""
b (Foo|None): instance of Foo.
"""
self.a = 'hello'
if isinstance(b, Foo):
print(b.a)
答案 0 :(得分:3)
不。竭尽全力在自己内部使用类是没有意义的,但是如果它解决了您的问题,那就继续吧。例如,python的标准库OrderedDict
有一个实例,在它自己的定义中使用自己:
def __eq__(self, other):
'''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive
while comparison to a regular mapping is order-insensitive.
'''
if isinstance(other, OrderedDict):
return len(self)==len(other) and \
all(_imap(_eq, self.iteritems(), other.iteritems()))
return dict.__eq__(self, other)
答案 1 :(得分:1)
不,很好。实际上,这是实现树或链接列表节点之类的非常常见的模式。