Python:面向对象,类和对象,实例方法与实例属性,构造函数
面向过程与面向对象:
类和对象:
class wash: height=800#类属性 print(wash.height)
输出结果为800
创建对象(实例化对象):
class wash: height=800#类属性 wa=wash() print(wa)#默认显示对象在内存中的地址 wa2=wash() print(wa2)#内存地址不一样说明是不同的对象,可以实例化多个对象
实例方法和实例属性:
方法:由对象调用,至少有一个self参数,执行实例方法的时候,自动将调用该方法的对象赋值给self:
class wash: height=800#类属性 def wash(self):#self参数是类中的实例方法,必须具备,表示当前调用该方法的对象,self代表对象本身,当对象调用实例方法时,Python会自动将对象本身的引用作为参数,传递到实例方法的第一个参数self里面 print("123") wa=wash() #对象调用类中的方法 wa.wash()
实例属性:
格式:self.属性名
class Person: name="lihailu"#类属性 def introduce(self): print("实例方法") print(f"{Person.name}的年龄:{self.age}") pe=Person() pe.age=18 pe.sex='男'#实例属性 print(pe.sex)#根据对象名访问实例属性 print(Person.sex)#实例属性只能由对象访问,不能由类名访问 pe.introduce()
实例属性和类属性的区别:后者是公共的,前者属于对象,是私有的,只能由对象名访问,不能由类名访问
每实例化一次就需要添加一次,效率不高
构造函数__init__():通常用来做属性初始化或赋值操作,在类实例化对象的时候会被自动调用
class Test: def __init__(self): print("123") ti=Test()
class Test: def __init__(self): self.name="lihailu" self.age=18 def play(self): print(f"{self.name} is playing") def introduce(self): print(f"{self.age} is bigger than liming") p=Test() p.play() p.introduce()
或:
class Test: def __init__(self,name,age): self.name=name self.age=age def play(self): print(f"{self.name} is playing") def introduce(self): print(f"{self.age} is bigger than liming") p=Test('lihailu',18) p.play() p.introduce()#构造函数实例化