Einführung in relevantes Wissen über Python-Klassen (mit Beispielen)

不言
Freigeben: 2018-11-26 16:46:54
nach vorne
2342 Leute haben es durchsucht

Der Inhalt dieses Artikels ist eine Einführung in relevantes Wissen über Python-Klassen (mit Beispielen). Freunde in Not können darauf zurückgreifen.

Python-Klassenattribute, Instanzattribute, Klassenmethoden, statische Methoden, Instanzmethoden

Klassenattribute und Instanzattribute

#coding:utf-8
class Student(object):
    name = 'I am a class variable' #类变量
>>> s = Student() # 创建实例s
>>> print(s.name) # 打印name属性,因为实例并没有name属性,所以会继续查找class的name属性
Student
>>> print(Student.name) # 打印类的name属性
Student
>>> s.name = 'Michael' # 给实例绑定name属性
>>> print(s.name) # 由于实例属性优先级比类属性高,因此,它会屏蔽掉类的name属性
Michael
>>> print(Student.name) # 但是类属性并未消失,用Student.name仍然可以访问
Student
>>> del s.name # 如果删除实例的name属性
>>> print(s.name) # 再次调用s.name,由于实例的name属性没有找到,类的name属性就显示出来了
Student
Nach dem Login kopieren

Klassenmethoden, Instanzen Methode, statische Methode

Instanzmethode, der erste Parameter muss standardmäßig an das Instanzobjekt übergeben werden, und es ist im Allgemeinen üblich, self zu verwenden.
Statische Methode, keine Parameter erforderlich.
Bei Klassenmethoden muss standardmäßig der erste Parameter übergeben werden. Es ist allgemein üblich, cls zu verwenden.

# coding:utf-8
class Foo(object):
    """类三种方法语法形式"""
 
    def instance_method(self):
        print("是类{}的实例方法,只能被实例对象调用".format(Foo))
 
    @staticmethod
    def static_method():
        print("是静态方法")
 
    @classmethod
    def class_method(cls):
        print("是类方法")
 
foo = Foo()
foo.instance_method()
foo.static_method()
foo.class_method()
print('----------------')
Foo.static_method()
Foo.class_method()
Nach dem Login kopieren

Laufende Ergebnisse:

是类<class &#39;__main__.Foo&#39;>的实例方法,只能被实例对象调用
是静态方法
是类方法
----------------
是静态方法
是类方法
Nach dem Login kopieren

Klassenmethode

Da es in einer Python-Klasse nur eine Initialisierungsmethode geben kann, kann die Klasse nicht entsprechend initialisiert werden Für verschiedene Situationen werden Klassenmethoden hauptsächlich verwendet, wenn eine Klasse zum Definieren mehrerer Konstruktoren verwendet wird.
Besonderer Hinweis: Statische Methoden können auch die oben genannten Funktionen erreichen, wenn statische Methoden jedes Mal den Namen der Klasse schreiben müssen.

# coding:utf-8
class Book(object):
 
    def __init__(self, title):
        self.title = title
 
    @classmethod
    def class_method_create(cls, title):
        book = cls(title=title)
        return book
 
    @staticmethod
    def static_method_create(title):
        book= Book(title)
        return book
 
book1 = Book("use instance_method_create book instance")
book2 = Book.class_method_create("use class_method_create book instance")
book3 = Book.static_method_create("use static_method_create book instance")
print(book1.title)
print(book2.title)
print(book3.title)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEinführung in relevantes Wissen über Python-Klassen (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage