python之面向对象编程-自定义内置方法定制类的功能,元类

1.内置方法:

        __str__        打印自动触发

        __del__        删除对象之前自动触发

2.用于实例化产生类的类称之为元类

    __call__        调用对象时自动触发

    __new__        新建一个空对象

  __init__           调用类自动触发,初始化独有属性

 

1.__str__方法

    在对象被打印时,自动触发,应该在该方法内采集与对象slef有关的信息,然后拼成字符串返回

        def __str__(self):

               print('====>')

             return '<name:%s age:%s>' %(self.name,self.age)

    obj=People('egon',18)

    print(obj)

 

2.__del__析构方法

    __del__会在对象被删除之前自动触发

 

class People:                                                    

    def __init__(self,name,age):

        self.name=name

        self.age=age

        self.f=open('a.txt','r',encoding='utf-8')

    def __del__(self)                                                             #程序运行完毕,对象自动删除   

        print('==========>')                                           #对象被删除之前自动触发

       # self.f.close    #需要做回收操作系统资源相关的事情

obj=People('egon',18)

del obj

 

3.什么是元类

    在python中一切皆对象,那么我们用class关键字定义的类本身也是一个对象

    负责产生该对象的类称为之为元类,即元类可以简称为类的类

        class Foo:   #Foo=元类()            #把定义的类foo当初个对象来看

            pass

    元类是负责产生类的,所以我们学习元类或自定义元类的目的是为了控制类的产生过程(添加逻辑条件..)

    还可以控制对象的产生过程

 

<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值