Python面向对象(二)


活动地址:CSDN21天学习挑战赛

七、初始化方法(__init__

当使用 类名()创建对象时,会自动执行以下操作:

为对象在内存中分配空间——创建对象
为对象的属性 设置初始值——初始化方法(__init__
这个初始化方法,就是__init__方法,__init__方法是对象的内置方法。

__init__方法是专门用来定义一个类具有哪些属性的方法。

示例:
在Factory中增加__init__方法,验证该方法在创建对象时会被自动调用。

class Factory:
    '''这是一个工厂类'''
    
    def __init__(self):
        print('这是一个初始化方法,创建对象时,会被自动调用!')
 
factory1=Factory()
#输出:
'''
这是一个初始化方法,创建对象时,会被自动调用!
'''

八、在初始化方法(__init__)内部定义属性

在 __init__方法内部使用 self.属性名 =属性的初始值 就可以定义属性。

class Factory:
    '''这是一个工厂类'''
    
    def __init__(self):
        print('这是一个初始化方法,创建对象时,会被自动调用!')
        #self.属性名=属性的初始值
        self.name='X工厂'
 
    def jianyan(self):
        print('这是工厂里面负责检验的。')
 
#使用类名()创建对象时,会自动调用初始化方法__init__
factory1=Factory()
factory1.jianyan()
print(factory1.name)
#输出:
'''
这是一个初始化方法,创建对象时,会被自动调用!
这是工厂里面负责检验的。
X工厂
'''

九、改造初始化方法(__init__)——初始化的同时设置初始值

在开发过程中,如果希望在 创建对象的同时,就设置对象的属性,就可以对 __init__方法进行改造。

  • 把希望设置的属性值,定义成 __init__方法的参数
  • 在方法内部使用 self.属性 =形参 接收外部传递的参数
  • 在创建对象时,使用 类名(属性1,属性2,……)
class Factory:
    '''这是一个工厂类'''
    
    def __init__(self,facroty_name):
        print('这是一个初始化方法,创建对象时,会被自动调用!')
        #self.属性名=属性的初始值
        self.name=facroty_name
 
    def jianyan(self):
        print('这是工厂里面负责检验的。')
 
#使用类名()创建对象时,会自动调用初始化方法__init__
factory1=Factory('万向集团')
factory1.jianyan()
print(factory1.name)
#输出:
'''
这是一个初始化方法,创建对象时,会被自动调用!
这是工厂里面负责检验的。
万向集团
'''

十、__del__方法

当一个对象被从内存中销毁前,再自动调用 __del__方法

应用场景:

  • __init__方法改造初始化方法,可以让创建对象更加灵活

  • __del__方法如果希望在对象销毁前,再做一些事情,可以考虑一下这个方法

  • 一个对象从调用 类名()创建,生命周期开始

  • 一个对象的__del__方法一旦被调用,生命周期结束

  • 在对象的生命周期内,可以访问对象属性,或者让对象调用方法

class Factory:
    '''这是一个工厂类'''
    
    def __init__(self,facroty_name):
        #self.属性名=属性的初始值
        self.name=facroty_name
        print('{}。'.format(self.name))
 
    def jianyan(self):
        print('这是工厂里面负责检验的。')
 
    def __del__(self):
        print('{}工厂休假!'.format(self.name))
 
 
#使用类名()创建对象时,会自动调用初始化方法__init__
#factory1是一个全局变量
factory1=Factory('万向集团')
factory1.jianyan()
print(factory1.name)
#del关键字可以删除一个对象
del factory1
 
 
#输出:
'''
万向集团。
这是工厂里面负责检验的。
万向集团
万向集团工厂休假!
'''

十一、__str__方法

在Python中,使用 print(对象名),默认情况下会输出:这个变量 引用的对象 是由 哪一个类创建的对象,以及在内存中的地址(十六进制表示)。

class Factory:
    '''这是一个工厂类'''
 
    def jianyan(self):
        print('这是工厂里面负责检验的。')
 
factory1=Factory()
print(factory1)
 
#输出:
'''
<__main__.Factory object at 0x00000235CE8053F0>
'''

如果在开发中使用print输出变量时,能够打印自定义内容,就可以利用 __str__这个内置方法。

注意:使用 __str__方法时必须是字符

class Factory:
    '''这是一个工厂类'''
 
    def jianyan(self):
        print('这是工厂里面负责检验的。')
 
    def __str__(self):
        return '我是一个超级工厂!'
 
factory1=Factory()
print(factory1)
 
#输出:
'''
我是一个超级工厂!
'''

十二、封装

将属性和方法封装到一个抽象的类中,对象方法的细节都被封装在类的内部。

class Factory:
    '''这是一个工厂类'''
 
    def jianyan(self):
        print('这是工厂里面负责检验的。')
 
    def zuzhuang(self):
        print('这是工厂里面负责组装的。')
 
    def baozhuang(self):
        print('这是工厂里面负责包装的。')
 
    def chuhuo(self):
        print('这是工厂里面负责出货的。')
 
factory1=Factory()
factory1.jianyan()
factory1.zuzhuang()
factory1.baozhuang()
factory1.chuhuo()
 
#下面是输出
'''
这是工厂里面负责检验的。
这是工厂里面负责组装的。
这是工厂里面负责包装的。
这是工厂里面负责出货的。
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值