Klasse und Objekt in Python3 verstehen (Codebeispiel)

不言
Freigeben: 2018-10-27 16:00:05
nach vorne
9958 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit dem Verständnis von Klassen und Objekten in Python3 (Codebeispiele). Ich hoffe, dass er Ihnen weiterhilft .

Was ist eine Klasse?
Eine Klasse ist ein abstraktes Konzept, das sich im Allgemeinen auf Dinge bezieht, die aus vielen ähnlichen Individuen bestehen und gemeinsame Merkmale aufweisen. Die Klasse ist beispielsweise ein Auto
und dieses Auto umfasst verschiedene Modelle
Was ist ein Objekt
Eine bestimmte Sache in der Klasse. Zum Beispiel ist der Wuling Shenche S (der Witz über das Töten des GTR in Sekundenschnelle bei Kurvenfahrten ist mir noch frisch in Erinnerung) die Verkörperung der Autoklasse
Zuerst gibt es Klassen, dann gibt es Objekte

Klassen und Objekte verstehen

def eating():
    print("吃草")
    
def walking():
    print("走路")

eating()
walking()
#(输出)    吃饭
        走路
    
#这样的话,别人也可以调用你写的函数,但是调用eating() 并不能清除的了解到到底是谁 “吃饭”,
#所以我们输入一个name来明确是谁在吃草。

def eating(name):
    print(name,"吃饭")
eating("zhuozi")            #调用函数
#(输出)zhuozi 吃草
Nach dem Login kopieren

#Aber Sie werden feststellen, dass es logisch etwas unangemessen ist, Zhuozi zum Essen zu verwenden, obwohl es grammatikalisch in Ordnung ist,
#deshalb werden wir es in die Kategorie „ einordnen. Essen" Unterteilt in eine Klasse, nämlich Kategorie, also markieren wir es, Klasse Person:
#Warum das Großbuchstabe P verwendet wird, um es von den Klassen der integrierten Funktionen von Python zu unterscheiden. Die integrierten Klassennamen sind alle Kleinbuchstaben (Sie können Strg + Klicken mit der linken Maustaste drücken, um die integrierte Funktion anzuzeigen)

class Person:            #这样我们就将eating封装到了Person这个类里面
                        #只要是Person这一类别的都可以进行下面的行为(eating)
    def eating(name):
        print(name,"吃饭")
        
zhangsan = Person()        #这里就不能像以前一样用eating去调用了,因为只有Person这一类的才能就行eating这个行为
                        #所以我们就要先将zhansan定义为Person这一类    
zhangsan.eating()        #然后才能让张三进行吃草这种行为
#(输出)<__main__.Person object at 0x000001D2CCC21160> 吃饭

lisi = Person()            #lisi也要吃饭,那继续定义lisi 是person 类 他可以吃饭
lisi.eating()            #lisi就可以吃饭了
#(输出)<__main__.Person object at 0x000001BCC6BF1198> 吃饭

#打印的一个地址,一个类的地址 object(翻译就是对象)就表示 lisi是这个类的对象
#lisi 就是 Person这个类 实例化的对象。
Nach dem Login kopieren

Bevor wir aufhören zu essen (Name): Der Name kann als derjenige gesehen werden, der isst. und die strenge Anforderung der Grammatik besteht hier darin, „self“ zu verwenden, um darzustellen, wer „eating“ nennt. Also wie folgt:

class Person:
    def eating(self):
        print(self,"吃饭")
Nach dem Login kopieren
class Person:
    pass
========
list  这里我们ctrl + 鼠标左键点击pycharm 里面书写的list,如图:
Nach dem Login kopieren

Klasse und Objekt in Python3 verstehen (Codebeispiel)
Es ist ersichtlich, dass die Klassennamen der integrierten Funktionen alle in Kleinbuchstaben geschrieben sind und die Klasse, die wir zuvor verwendet haben (Listenname).append() ist Worüber wir jetzt sprechen: Beim Aufrufen von Funktionen unter einer Klasse ist der Objektname in Klammern self und der Listenname das instanziierte Objekt.

Syntax

class 类名(父类列表):        #类名和变量名称的命名是一样的,类名首字母要大写,
                            #用来区别是否是内置函数自带的类
    类体
    
数据属性                        #类的共同属性,名字,性别,干什么的,等等

方法属性                        #这个类共同都有的功能,跑,跳,计算,记录等等
Nach dem Login kopieren
class Person:
    pass

zhangsan = Person()                #张三是Person实例化的对象,所以要开辟一个内存来存储,
                                #即将zhangsan变量名指向这个内存地址
print(zhangsan)
#(输出)<__main__.Person object at 0x00000194D8D28400>

既然实例化对象后开辟了内存,我们就要在里面进行一个存储
Nach dem Login kopieren
class Person:
    pass

zhangsan = Person()
zhangsan.name = "zhangsan"                #给这个实例化的对象附一个名字
print(zhangsan)
#(输出)<__main__.Person object at 0x0000018DF6598400>

print(zhangsan.name)                    #打印出这个对象的名字
#(输出)zhangsan

zhangsan对象名 指向  内存,内存里面有一个属性name,而name指向zhangsan这个名字  两个zhngsan 不一样啊
zhangsan(类的对象名字)  -- 》内存 (name)----》zhangsan(对象的属性)

lisi = Person()                    #再实例化一个对象
lisi.name = "xiaolong"
print(lisi.name)    
print(id(lisi.name))            
lisi = Person()
lisi.name = "xiaolong"

print(id(zhangsan))
#(输出)2070146453856
print(lisi.name)
#(输出)xiaolong
print(id(lisi.name))
#(输出)2070146521264
Nach dem Login kopieren
Es ist ersichtlich, dass die IDs der beiden instanziierten Objekte unterschiedlich sind

Hier kommen die Namespace-Regeln:
Jede Instanziierung an Das Objekt belegt einen separaten Speicher des Systems, wenn keine spezielle Verarbeitung durchgeführt wird.

class Person:
    pass

zhangsan = Person()                    
zhangsan.name = "zhangsan"
zhangsan.sex = "男"
zhangsan.age = 19
zhangsan.hight = 175

lisi = Person()
lisi .name = "xiaolong"
lisi .sex = "女"
lisi .age = 29
lisi .hight = 170
#两个内容的创建方式相同啊,只是内容不同,那么我们写一个函数来进行这种重复性的操作,
Nach dem Login kopieren
rrree

init: Es handelt sich um eine spezielle Funktion, die im System existiert, wenn wir ein Objekt instanziieren (zhangsan = Person("zhangsan","male","19",175) ) ruft das standardmäßig instanziierte Objekt diese Funktion auf. def init(selbst, Name, Geschlecht, Alter, Größe):
Der Name des Selbstobjekts ist zhangsan vor dem Gleichheitszeichen,
und Name, Geschlecht, Alter, Größe entsprechen „zhangsan“ , „Männlich“, „19“, 175

Das obige ist der detaillierte Inhalt vonKlasse und Objekt in Python3 verstehen (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:csdn.net
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