如何在Python中使用self关键字传递对象?

jbu*_*_13 -1 python

是否可以在Python中传递一个对象,使得对该对象的唯一引用是self关键字?

class A:
    
    def __init__(self):
        self.val = 'A'
        
    def wave(self,friend):
        friend.make_friend(self)
        
        
class B:
    
    def __init__(self):
        val = 'B'
        
    def make_friend(self, friend):
        self.friend = friend
    
a = A
b = B    

a.wave(friend=B)

>>>
----> 1 a.wave(friend=B)

TypeError: A.wave() missing 1 required positional argument: 'self'
Run Code Online (Sandbox Code Playgroud)

从这个错误来看,这似乎是不可能的。参见A类方法波。这个方法打算将 A 发送到 B。但是我无法在 A 中引用 A,因为它只是该类的一个实例。因此,我想使用 self 关键字来传递它。

小智 6

有可能是的。您只是由于没有创建类 A 的实例而碰巧收到该错误。要创建类的实例,您需要使用括号调用该类。

a = A()
b = B()
a.wave(friend=b)
Run Code Online (Sandbox Code Playgroud)