In Python kann ich mit dem @classmethod-Dekorator eine Methode zu einer Klasse hinzufügen. Gibt es einen ähnlichen Dekorator zum Hinzufügen einer Eigenschaft zu einer Klasse? Ich kann besser zeigen, wovon ich spreche.
class Example(object):
the_I = 10
def __init__( self ):
self.an_i = 20
@property
def i( self ):
return self.an_i
def inc_i( self ):
self.an_i += 1
# is this even possible?
@classproperty
def I( cls ):
return cls.the_I
@classmethod
def inc_I( cls ):
cls.the_I += 1
e = Example()
assert e.i == 20
e.inc_i()
assert e.i == 21
assert Example.I == 10
Example.inc_I()
assert Example.I == 11
Ist die Syntax, die ich oben verwendet habe, möglich oder wäre dafür etwas mehr erforderlich?
Der Grund, warum ich Klasseneigenschaften möchte, besteht darin, dass ich Klassenattribute verzögert laden kann, was vernünftig genug erscheint.
0 antwortet
Hot-Tools-Tags
Heiße Fragen
Beliebtes Werkzeug
Sammlung der Laufzeitbibliothek vc9-vc14 (32+64 Bit) (Link unten)
Laden Sie die Sammlung der Laufzeitbibliotheken herunter, die für die Installation von phpStudy erforderlich sind
VC9 32-Bit
VC9 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy
Vollversion der PHP-Programmierer-Toolbox
Programmer Toolbox v1.0 PHP Integrierte Umgebung
VC11 32-Bit
VC11 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy
SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen






