【发布时间】:2026-02-12 11:25:03
【问题描述】:
为什么这个来源...
"""
[...]
"""
# Import the standard date and time system.
from datetime import datetime as dt
# Ommited the remaining imports section
class CuteClass(object):
"""
[...]
"""
def __init__(self, parameter_zero, date, parameter_two):
"""
[...]
"""
# Omitted parameter_zero processing.
print(type(date)) # FIXME delete this sentence.
if sys.version_info[0] == 2:
assert (type(date) == "<type 'datetime.datetime'>",
'assertion failed creating a CuteClass object')
elif sys.version_info[0] == 3:
assert (type(date) == "<class 'datetime.datetime'>",
'assertion failed creating a CuteClass object')
else:
sys.exit(inspect.getframeinfo(inspect.currentframe()))
self.date = date
# Omitted remaining parameters' processing.
...产生python3...
<class 'datetime.datetime'>
Traceback (most recent call last):
[...]
File "...", line 37, in __init__
assert type(date) == "<class 'datetime.datetime'>"
AssertionError
$ _
..?我希望类初始化器成为对象创建的苛刻过滤器。
你是怎么处理的?对我来说一切都很好。
【问题讨论】:
-
您将实际类型对象与其字符串表示混淆了。
标签: python python-3.x metaprogramming python-2.x metaclass