Python:创建的类实例没有参数

2024-05-03 04:50:38 发布

您现在位置:Python中文网/ 问答频道 /正文

当我声明一个类时

class MyClass: 
    def __init__(self, value):
        self.data = value 
    def show(self):
        print self.data`

然后创建一个实例

A = MyClass(1)

行为与我所期望的一样(A.show的输出是1)。但是当我创建一个没有参数的实例时

B = MyClass

然后手动设置值

B.data = 2 

调用B.show返回TypeError: unbound method show() must be called with MyClass instance as first argument (got nothing instead)

有人能解释一下为什么吗


Tags: 实例self声明data参数initvaluedef
1条回答
网友
1楼 · 发布于 2024-05-03 04:50:38

B是类定义的另一个名称MyClass

B.data = 2

在类定义上创建名为data的属性

B.show是对MyClass上定义的函数的引用。它是一个实例函数,期望在MyClass的实例上被调用(这就是A是什么,而不是B是什么)

实例作为第一个参数隐式传递给函数。可以使用实例显式调用函数:

B.show(A)

相关问题 更多 >