python中self与__init__的意义与作用和一些理解

2022-07-29,,,,

你是一个人你是人类的一个实例你有你自己的性别,也就是一个类似于self.gender的东西。因为这个东西是每个人不一样的,所以你不能写Human.gender。但有的时候一个类成员还是有一些共用的东西的,比方说你的国籍是中国,所以human.nationality=“Chinese”。你作为一个人并不是从时间的一开始就存在的,得有什么东西创建一个对象。其实严格来说真真创建这个对象(打造躯壳)是__new__干的事情(一般不需要太在意,除非你在写一些巨复杂的东西),__init__让那个对象变成了那个独一无二的你(注入灵魂)。而且__init__是不需要调用的,在类被实例化的同时,init 方法就会被自动调用。
self是指不同的实例的指代,比如zhangsan与lisi两个实例,传入的参数是不同的,self 简单的说就是把 class 中 定义的 变量和函数 变成 实例变量和实例函数

class human: def __init__(self,name,gender,age,rich):#类实例化时需要传入三个参数 self.name=name
        self.gender=gender
        self.age=age
        human.nationality="Chinese"#固定参数,不需要传入,已经写好 self.rich=rich print(self.name+" is a "+human.nationality)#类实例化时,被自动调用 def info(self): print("**************************************") print("My name is "+ self.name) print("My age is " + str(self.age)) print("My gender is "+self.gender) print("My nationality is "+human.nationality) print("**************************************") def money(self): if self.rich: print(self.name+" is a rich guy") else: print(self.name+" is a poor guy") 

实例化

zhangsan=human("zhangsan","male",18,True)#__init__()被自动调用输出print语句 lisi=human("lisi","female",20,False) 

zhangsan is a Chinese
lisi is a Chinese

print(zhangsan.age) print(lisi.age) print(zhangsan.nationality) print(lisi.nationality) zhangsan.info() lisi.info() zhangsan.money() 

18
20
Chinese
Chinese
**************************************
My name is zhangsan
My age is 18
My gender is male
My nationality is Chinese
**************************************
**************************************
My name is lisi
My age is 20
My gender is female
My nationality is Chinese
**************************************
zhangsan is a rich guy

zhangsan.nationality="USA" zhangsan.info() 

**************************************
My name is zhangsan
My age is 18
My gender is male
My nationality is USA
**************************************

本文地址:https://blog.csdn.net/qq_39180879/article/details/109046622

《python中self与__init__的意义与作用和一些理解.doc》

下载本文的Word格式文档,以方便收藏与打印。