【发布时间】:2010-10-05 02:28:17
【问题描述】:
一般来说,如果类的用户知道有时构造函数的计算结果为 None,那么从 __new__ 方法返回 None 是否合理?
文档并不暗示它是非法的,而且我没有看到任何直接的问题(因为不会调用 __init__,None 不是相关自定义类的实例!)。但我很担心
- 是否可能有其他不可预见的问题
- 让构造函数返回 None 是否是一种好的编程习惯
具体例子:
class MyNumber(int):
def __new__(cls, value): # value is a string (usually) parsed from a file
if value == 'N.A.':
return None
return int.__new__(cls, value)
【问题讨论】:
标签: python new-operator