是否可以在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)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |