擅长:python、mysql、java
<p><code>self</code>参数(不需要,但应该这样调用)与被调用的对象相同。现在<code>__init__</code>有点特殊,但一般来说<code>obj.method(args)</code>与<code>cls.method(obj, args)</code>相同,其中<code>cls</code>是obj的类。<code>self</code>没有什么比调用方法时自动插入更神奇的了。当然,<code>__init__</code>参数是正在构造的对象</p>
<p>换句话说,<code>self</code>(或first)参数就是调用方法的对象</p>
<p>您试图执行的操作有点不清楚(因为将参数命名为与方法的类相同有点混乱),但是<code>self</code>不是您想要访问其他对象时要做的,首先您还必须提供其他对象(例如作为参数)并以相同的方式访问它:</p>
<pre><code>def method(self, other):
self.attr = other.attr
</code></pre>
<p>请注意,<code>other.self.attr</code>将要求对象<code>other</code>具有一个名为<code>self</code>的属性,而它通常不具有该属性。因此,这样做通常是不正确的——无论如何,它与<code>other.attr</code>是完全不同的</p>