Ich bin nicht sehr vertraut mit Python, also, als ich diesen Code traf, gibt es ein paar Dinge nicht ganz klar für mich. Hier ist der Code:Instanz undefinierte Parameter in 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
Warum def __init__(self):
nicht name
als Parameter haben, aber in den obigen Code ist es self.__name = None
?
Auch was bedeutet self.instance
bedeuten, weil ich nicht erinnere, dass es ein Attribut namens Instanz gibt.
Kann mir bitte jemand helfen, zu verstehen, was dieser Code tut, und ob eine Java-Version zur Verfügung gestellt werden kann, wird sehr geschätzt, da ich Java besser kenne. Danke
'self .__ name' wird mindestens benötigt, da die '@ property' annimmt, dass sie existiert. Die Implementierung von 'name' müsste sich ändern, wenn nicht garantiert wäre, dass sie in' _init__' initialisiert wird. – ShadowRanger