【发布时间】:2011-07-10 16:50:20
【问题描述】:
我正在编写一个基于“状态”示例here 的连接状态保持程序。
在示例中,Radio 类在实例化 AmState 时将指针(更好的术语?)传递给 AmState:
class AmState(State):
def __init__(self, radio):
self.radio = radio
...
class Radio(object):
def __init__(self):
...
self.amstate = AmState(self)
该示例将此指针 (?) 存储在名称“radio”中,但是该值的正确 Python/OO 术语是什么?我一直想说“父母”,但“AmState 的 父母 是“国家”,而不是“无线电”。
在记录我的代码时,我应该在这里使用什么术语来最大程度地减少混淆?
谢谢
【问题讨论】:
-
有很多选择,但是“父母”没有错。请注意,这通常不是一个很好的模式,因为您正在为这些对象中的每一个创建一个循环引用,这会降低 GC 的效率,并且如果您有任何
__del__方法会让您头疼。 -
我不同意@Glenn Maynard 关于使用“父”是可以的,因为该术语通常用于指定派生类的基类(或类)——这不是 OP是在做。事实上,这正是我认为问题的标题。
-
@martineau:“父级”是用于描述层次结构的通用术语;类只是使用它的一种情况。它绝不是特定于类的。
-
也许我只是不明白,但我认为您链接到的 State 示例很奇怪。 Python 不需要状态对象,我们有生成器来保持状态。
-
@Glenn Maynard:我同意,技术上“父母”是正确的。但我发现自己每次看到“self.parent”时都会想到“父类”。如果我在开发代码时感到困惑,那么当我(或其他人)稍后回来并试图理解它时,情况只会更糟。因此,呼吁推荐替代品。基本上,“父母”一词(太)超载了。 :-)
标签: python oop terminology