类是数据和方法的集合。
对象是类的一个实例。
假设您有两个文件:foo.py
和bar.py
foo.py:
class Foo:
pass
酒吧.py:
import Foo
class Bar:
pass
foo = Foo.Foo()
bar = Bar()
print(foo)
# Note the parenthesis. By doing this you are making an instance.
print(Foo.Foo())
# both print something like <Foo.Foo object at 0x000000000229A128>
print(Foo.Foo)
# prints <class 'Foo.Foo'>
print(bar)
# prints <__main__.Bar object at 0x000000000229A5F8>
当您打印foo
or Foo.Foo()
(带括号)时,它告诉您您引用的类的实例来自模块Foo
并且它引用的类是Foo
. 再一次,这object
部分只是意味着它是来自所述模块的所述类的实例。
如果您打印Foo.Foo
(不带括号),您将得到:
<class 'Foo.Foo'>
它告诉您该类位于模块中Foo
并命名为Foo
打印bar
或Bar()
(带括号)也是如此:
__main__
仅表示您引用的类来自您当前正在执行的脚本。
Bar
是你引用的类。
但是,如果您打印Bar
(无括号),您将得到:
<class '__main__.Bar'>
这告诉我们类Bar
驻留在主脚本中。
TL;博士:
Bar
引用该类Bar()
将创建一个object
或instance
出该类。
希望我把事情弄清楚了。