在Python 2.1.x或更低版本中沒有object型別。
這里有三個檔案:
#!/usr/bin/env python2。
class foo。pass
print(foo)
print(repr(foo))
print(type(foo))
#!/usr/bin/env python2。
class foo(object)。pass。
print(foo)
print(repr(foo))
print(type(foo))
#!/usr/bin/env python3。
class foo(object)。pass。
print(foo)
print(repr(foo))
print(type(foo))
這里是他們的輸出:(僅供參考)
__main__.foo
<class __main__.foo at 0xf7d30e9c>
<type 'classobj'>。
<class '__main__.foo'/span>>
<class '__main__.foo'>
<type 'type'>。
<class '__main__.foo'/span>>
<class '__main__.foo'>
<class 'type'>。
在Python 3中,所有型別都是類。
但是在Python 1和Python 2中,型別是 "type "型別,而類是 "classobj "型別。而由class foo(object): pass生成的類只是 "object "型別中的一個子類。
那么,在 Python 1 或 Python 2 中是否可以創建一個新的型別(但不是新的類)?如果可以,怎么做?
uj5u.com熱心網友回復:
感謝@chepner
不,這就是為什么添加了新式的類:以消除類和型別之間的人為區別。舊式類的型別是
。classobj,但是當新式類在 Python 2.2 中被引入時,它們實際上就被廢棄了。考慮到被問及的版本的極端年齡,這可能更適合 retrocomputing.stackexchange.com.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/309353.html
標籤:
