这篇文章主要介绍python不同版本中的_new_有什么不同,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联服务项目包括阜康网站建设、阜康网站制作、阜康网页制作以及阜康网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,阜康网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到阜康省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!new方法接受的参数虽然也是和init一样,但init是在类实例创建之后调用,而 new方法正是创建这个类实例的方法。
class Person(object): """Silly Person""" def __new__(cls, name, age): print '__new__ called.' return super(Person, cls).__new__(cls, name, age) def __init__(self, name, age): print '__init__ called.' self.name = name self.age = age def __str__(self): return '<Person: %s(%s)>' % (self.name, self.age) if __name__ == '__main__': piglei = Person('piglei', 24) print piglei
Python3和 Python2中__new__使用不同
Python3的写法
class Singleton(object): def __new__(cls,*args, **kwargs): if not hasattr(cls,'_inst'): print(cls) cls._inst = super(Singleton, cls).__new__(cls) return cls._inst
如果Python3的写法跟Python2写法一样,那么倒数第二行会报错
"TypeError: object() takes no parameters"
根据上面的运行结果我们可以发现,在python3中强行使用python2的写法是不可行的。如果有小伙伴是习惯了python2的用法,换版本时要注意_new_写法的改变。
以上是“python不同版本中的_new_有什么不同”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
新闻名称:python不同版本中的_new_有什么不同-创新互联
当前URL:https://www.cdcxhl.com/article0/cesdio.html
成都网站建设公司_创新互联,为您提供网站建设、网站设计、网站导航、网站营销、商城网站、软件开发
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联