Python学习笔记–基础语法6.1–类和对象的定义与使用
__init__方法:
是专门是用来定义一个类具有那些属性的方法。
面向对象中__init__方法是做什么用的:
__init__方法是初始化方法,在创建对象时会被自动调用。
当类创建对象时,会自动执行以下操作:
1.为对象在内存中分配空间 ——创建对象
2.为对象的属性设置初始值 ——初始化方法
class SnowPerson:
'''创建一个雪人类'''
def __init__(self,name):
#类被创建时,会自动调用初始化方法
# self.name = name #在初始化方法里面定义的变量叫做属性
print('我是初始化方法')
def eat(self):
print("我在被对象调用的时候才会执行")
tom = SnowPerson() #创建对象
tom.eat() #调用方法,使用对象名调用类里面的方法
eat(tom) #调用函数
del tom #使用关键字
运行结果:
我是初始化方法
我在被对象调用的时候才会执行
定义属性:
class SnowPerson:
'''创建一个雪人类'''
def __init__(self,name):
#类被创建时,会自动调用初始化方法
# self.name = name #在初始化方法里面定义的变量叫做属性
# self.属性名 = 参数名 #接收外部传递参数
self.name = name
print ('我的名字叫%s'%self.name)
tom = SnowPerson('nunu') #创建对象
运行结果:
我的名字叫nunu
__del__方法:(了解即可)
如果对象销毁前想要在做一些事情,可以考虑__del__方法
class SnowPerson:
'''创建一个雪人类'''
def __init__(self,name):
print('我是初始化方法')
def eat(self):
print("我在被对象调用的时候才会执行")
def __del__(self):
print ("对象销毁")
tom = SnowPerson('nunu') #创建对象
del tom
print('*'*50)
运行结果:
我是初始化方法
对象销毁
**************************************************
__str__方法:
可以返回类的描述信息
class SnowPerson:
'''创建一个雪人类'''
def __init__(self,name):
#类被创建时,会自动调用初始化方法
# self.name = name #在初始化方法里面定义的变量叫做属性
print('我是初始化方法')
def __str__(self):
return '这是一个雪人类,它返回给对象了'
tom = SnowPerson('nunu') #创建对象
print(tom)
运行结果:
我是初始化方法
这是一个雪人类,它返回给对象了
补充:
1.对于self:
由哪一个对象调用的方法,方法内的 self 就是哪一个对象的引用,上述例子中 self 就是 tom。
在调用方法时,程序员不需要传递self参数
在类里面方法的内部,可以通过self. 访问对象的属性,也可以通过self. 调用对象的其他方法。
2.面向对象封装:
封装是面向对象的一个大特点,面向对象编程的第一步就是将属性和方法封装到一个类里面,外界使用类创建对象,再让对象调用方法。
案例:
需求:
1.张三丰内力值10万
2.打太极时内力增加10万
3.打坐时内力降低5万
class YingXiong:
def __init__(self,name,neili):
self.name=name
self.neili=neili
def __str__(self):
return '%s爱打太极,内力值是%d'%(self.name,self.neili)
def run (self):
self.neili+=10
print("%s正在打太极,现在的内力是%d"%(self.name,self.neili))
def dazuo(self):
self.neili-=5
print("%s正在打坐,现在的内力是%d"%(self.name,self.neili))
zhangsanfeng=YingXiong('张三丰',10)
zhangsanfeng.run()
zhangsanfeng.dazuo()
运行结果:
张三丰爱打太极,内力值是10
张三丰正在打太极,现在的内力是20
张三丰正在打坐,现在的内力是15