私はこのコードに出会ったときに、私にはあまり明確ではないいくつかのことがあります。ここでは、コードは次のとおりです。Pythonのインスタンスと未定義のパラメータ
class TypeVariable(object):
#A type variable standing for an arbitrary type.
#All type variables have a unique id, but names are only assigned lazily,
#when required.
next_variable_id = 0
def __init__(self):
self.id = TypeVariable.next_variable_id
TypeVariable.next_variable_id += 1
self.instance = None
self.__name = None
next_variable_name = 'a'
@property
def name(self):
#Names are allocated to TypeVariables lazily, so that only TypeVariables present
if self.__name is None:
self.__name = TypeVariable.next_variable_name
TypeVariable.next_variable_name = chr(ord(TypeVariable.next_variable_name) + 1)
return self.__name
なぜdef __init__(self):
は、パラメータとしてname
を持っていないが、上記のコードでself.__name = None
がありますでしょうか?
また、self.instance
の意味は、インスタンスと呼ばれる属性があることを思い出していないためです。
私はJavaに精通しているので、誰かがこのコードの機能を理解するのを手伝ってください。ありがとう
'@ property'が存在すると仮定して' self .__ name'が最低限必要です。 'name'の実装は、' __init__'で初期化することが保証されていなければ変更する必要があります。 – ShadowRanger