Trong Python 2, không kế thừa từ object
sẽ tạo ra một lớp kiểu cũ, trong đó, trong số các hiệu ứng khác, gây ra type
kết quả khác nhau:
>>> class Foo: pass
...
>>> type(Foo())
<type 'instance'>
so với
>>> class Bar(object): pass
...
>>> type(Bar())
<class '__main__.Bar'>
Ngoài ra, các quy tắc cho nhiều kế thừa là khác nhau theo những cách mà tôi thậm chí sẽ không tóm tắt ở đây. Tất cả các tài liệu tốt mà tôi đã thấy về MI mô tả các lớp kiểu mới.
Cuối cùng, các lớp kiểu cũ đã biến mất trong Python 3 và kế thừa từ object
đó trở nên ẩn. Vì vậy, luôn thích các lớp kiểu mới trừ khi bạn cần compat ngược với phần mềm cũ.
class Foo():
vàclass Foo:
? Khi tôi quan sát, cả hai đều hoạt động trong Python 3.