Python学习笔记--基础语法6.1--类和对象的定义与使用

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值