我正在尝试将一些python代码翻译为scala代码.所以我是Python中的总菜鸟.
但为什么有些类将对象作为参数但从未明确使用它?首先将它作为参数的原因是什么?
例:
class Table(object)
Run Code Online (Sandbox Code Playgroud)
感谢您的时间.
unu*_*tbu 103
在Python2中,这声明Table是一个新式的类(而不是"经典"类).在Python3中,所有类都是新式类,因此不再需要它们.
新样式类具有经典类缺少的一些特殊属性.
class Classic: pass
class NewStyle(object): pass
print(dir(Classic))
# ['__doc__', '__module__']
print(dir(NewStyle))
# ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
Run Code Online (Sandbox Code Playgroud)
在Python2中,最好使所有类成为新式类.(虽然标准库中的很多类仍然是经典类,但为了向后兼容.)
一般来说,在诸如此类的陈述中
class Foo(Base1, Base2):
Run Code Online (Sandbox Code Playgroud)
Foo被声明为类从基类继承Base1和Base2.
object是Python中所有类的母亲.它是一个新式的类,所以继承object是Table一个新式的类.
| 归档时间: |
|
| 查看次数: |
49842 次 |
| 最近记录: |