suchen
  • Anmelden
  • Melden Sie sich an
Passwort-Reset erfolgreich

Verfolgen Sie die Projekte, die Sie interessieren, und erfahren Sie die neuesten Nachrichten über sie

0 answers
Fragen und Antworten Wie erstelle ich eine Klasseneigenschaft? [Duplikat]
Wie erstelle ich eine Klasseneigenschaft? [Duplikat]
P粉459440991 2026-01-03 18:22:28 Sicht 137

0

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.

Ihre Antwort
einreichen

0 antwortet

Beliebtes Werkzeug

Sammlung der Laufzeitbibliothek vc9-vc14 (32+64 Bit) (Link unten)

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

VC9 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy

Vollversion der PHP-Programmierer-Toolbox

Vollversion der PHP-Programmierer-Toolbox

Programmer Toolbox v1.0 PHP Integrierte Umgebung

VC11 32-Bit

VC11 32-Bit

VC11 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen