博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 辨异 —— __init__ 与 __new__
阅读量:4573 次
发布时间:2019-06-08

本文共 387 字,大约阅读时间需要 1 分钟。

__init__ 更多的作用是初始化属性,__new__ 进行的是创建对象,显然 __new__ 要早于 __init__ 发生。

考虑一个继承自 tuple 的类,显然在 __init__ 无法对其成员进行修改;

class Edge(tuple):    def __new__(cls, e1, e2):        return tuple.__new__(cls, (e1, e2))    def __repr__(self):        return 'Edge (%s, %s)' % (repr(self[0]), repr(self[1]))    __str__ = __repr__

显然这里定义的类 Edge 可以用来抽象一些二元不可变的对象。

转载于:https://www.cnblogs.com/mtcnn/p/9422537.html

你可能感兴趣的文章
jq 删除数组中的元素
查看>>
js URL中文传参乱码
查看>>
Leetcode 367. Valid Perfect Square
查看>>
UVALive 3635 Pie(二分法)
查看>>
win系统查看自己电脑IP
查看>>
Backup&recovery备份和还原 mysql
查看>>
一道面试题及扩展
查看>>
Unity 3D 我来了
查看>>
setup elk with docker-compose
查看>>
C++ GUI Qt4学习笔记03
查看>>
Java基础回顾 —反射机制
查看>>
c# 前台js 调用后台代码
查看>>
2017-02-20 可编辑div中如何在光标位置添加内容
查看>>
$.ajax()方法详解
查看>>
jquery操作select(增加,删除,清空)
查看>>
Sublimetext3安装Emmet插件步骤
查看>>
MySQL配置参数
查看>>
全面理解Java内存模型
查看>>
存储过程
查看>>
生成器
查看>>