Klassenattribute
1. Attribute direkt in der Klasse definieren
Der einfachste und direkteste Weg ist natürlich, sie in der Klasse zu definieren, zum Beispiel:
class UserInfo(object): name='兩點水'
2. Definieren Sie Attribute im Konstruktor
Wie der Name schon sagt, werden die Attribute beim Konstruieren des Objekts definiert.
class UserInfo(object): def __init__(self,name): self.name=name
3. Attributzugriffskontrolle
In Java gibt es ?ffentliche (?ffentliche) Attribute und private (private) Attribute, die den Zugriff auf Attribute steuern k?nnen. Gibt es also eine Attributzugriffskontrolle in Python?
Im Allgemeinen verwenden wir __private_attrs beginnend mit zwei Unterstrichen, um zu deklarieren, dass das Attribut privat ist und au?erhalb der Klasse nicht verwendet oder direkt darauf zugegriffen werden kann. Bei Verwendung von self.__private_attrs in einer Methode innerhalb einer Klasse.
Warum k?nnen wir das nur allgemein sagen? Denn tats?chlich stellt Python keine Funktionen wie private Attribute bereit. Allerdings h?ngt die Zugriffskontrolle von Python auf Attribute vom Bewusstsein des Programmierers ab. Warum sagst du das? Schauen Sie sich das folgende Beispiel an:
Schauen Sie sich das Bild genau an, warum ist die doppelte Unterstreichung kein echtes privates Attribut? Schauen wir uns das folgende Beispiel an und verwenden Sie das folgende Beispiel zur überprüfung:
#!/usr/bin/env python # -*- coding: UTF-8 -*- class UserInfo(object): def __init__(self, name, age, account): self.name = name self._age = age self.__account = account def get_account(self): return self.__account if __name__ == '__main__': userInfo = UserInfo('兩點水', 23, 347073565); # 打印所有屬性 print(dir(userInfo)) # 打印構造函數(shù)中的屬性 print(userInfo.__dict__) print(userInfo.get_account()) # 用于驗證雙下劃線是否是真正的私有屬性 print(userInfo._UserInfo__account)
Das Ausgabeergebnis ist wie folgt: