Python笔记2—魔术方法

魔术方法

__init__方法:在上一篇中学习过了

__str__方法:

class peole:
    def __init__(self,name,age,pro):
        self.name=name
        self.age=age
        self.pro=pro
        print('init函数初始化')
        pass
    # def aihao(self):
    #     print('{}{}了,读{}专业'.format(self.name,self.age,self.pro))
    #     pass
    def __str__(self):
        '''
        打印对象 自定义对象 是内容格式
        :return:
        '''
        return '{}{}了,读{}专业'.format(self.name,self.age,self.pro)
        pass
    def __new__(cls, *args, **kwargs):
        '''
        创建对象实例的方法  每调用一次 就会生成一个新的对象 cls 就是class的缩写
        场景:可以控制创建对象的一些属性限定 经常用来做单例模式的时候来使用
        :param args:
        :param kwargs:
        '''
        print('new函数的缩写')
        return object.__new__(cls) # 这里是真正创建对象实例的
        pass

xm=peole('小明','20','电子信息工程')
print(xm)

小结:

# __new__和__init__函数的区别
# __new__类的实例化方法,必须要返回该实例,否则对象就创建不成功
# init 用来做数据属性的初始化工作,也可以认为是实例的构造方法,接受类的实例 self对其进行构造
# new 有一个参数是cls 代表要实例化的类,此参数在实例化时由python解释器提供
# new 函数执行要早于 __init__函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值