python:__new__方法 的用处

    SEO基础 wuya 72次浏览 已收录 0个评论

    __new__用于创建新的对象:

     

    class Person(object):

    # 用于创建对象

    def __new__(cls, *args, **kwargs):

    print(‘__new__’)

    # 创建对象,然后返回

    return object.__new__(cls)

    __init__用于初始化对象

    # 用于初始化对象

    def __init__(self):

    print(‘__init__’)

     

    设计模式

     

    单例模式:无论创建多少次,得到的对象始终是同一个。

    说明:针对特定场景问题的特定解决方案

     

    class Person(object):

    def __new__(cls, *args, **kwargs):

    # 判断当前类是否拥有_instance属性

    if not hasattr(cls, ‘_instance’):

    print(‘创建对象’)

    cls._instance = object.__new__(cls)

    return cls._instance

     

    p1 = Person()

    p2 = Person()

     

    eval

     

    (执行有效的python代码字符串

    c=eval(‘a+b’)

    print(c)

    个人理解:如果想以字符串的形式导出对象。用__repr__可以得到的字符串表达形式。

    然后可以用eval打印这些可以执行的字符串。

     

    __repr__

     

    可以得到对象创建的字符串表示形式。

     


    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明python:__new__方法 的用处
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址