擅长:python、mysql、java
<p>Python中的所有东西都是对象,这是事实。甚至类本身也被认为是对象,它们实际上是内置类<code>type</code>的产物,这也不足为奇地成为对象。但在大多数情况下,对象几乎肯定会继承包括方法或数据在内的属性。你知道吗</p>
<blockquote>
<p><em>So, should all objects have to have attributes and methods ?</em></p>
</blockquote>
<p>并非所有对象都有自己的属性。例如,对象可以从其类和类的超类继承属性,但该属性或方法不一定存在于实例的命名空间字典中。实际上,实例的名称空间可以是空的,如下所示:</p>
<pre><code>class Foo:
pass
a = A()
print(a.__dict__)
</code></pre>
<p><code>a</code>这里除了从它的类继承的属性之外没有任何属性,因此如果您通过内置属性检查它的名称空间<code>__dict__</code>,您会发现名称空间是一个空字典。但是你可能想知道<code>a.__dict__</code>不是<code>a</code>的属性吗?区分<em>类级属性</em>从类或其超类继承的属性和<em>实例属性</em>属于实例且通常位于其命名空间<code>__dict__</code>中的属性。你知道吗</p>
<blockquote>
<p><em>Could you give example of pre-defined object in python that has neither attributes nor methods ?</em></p>
</blockquote>
<p>如果你说的是预定义对象,一个内置对象,我无法想象这样的场景。同样,即使对象本身没有属性,也会有从它的类或类的超类继承的属性,如果在大多数情况下有任何超类的话。可能,我猜在这里,教程要求您创建一个类,该类不为其对象分配属性,就像我上面包含的代码一样。你知道吗</p>
<p>这已经更好地回答了你的问题:<a href="https://stackoverflow.com/questions/865911/is-everything-an-object-in-python-like-ruby">Is everything an object in python like ruby?</a></p>