调用不带()的类可以正常工作,但不能提供所需的输出

时间:2019-03-25 07:16:28

标签: python-3.x

我是python的新手,有人可以向我解释为什么会这样吗? “()”是什么意思

class ganga:
    a ="subhanshu"
    def course(self,name):
        self.ab = name
obj1=ganga()                #it works fine
obj = ganga                 #works fine
obj1.course("apple")        #it works fine
onj.course("apple")         #gives me error

错误是: TypeError:course()缺少1个必需的位置参数:“名称”

1 个答案:

答案 0 :(得分:0)

函数course有两个参数:selfnameself参数是指要在其上执行功能操作的对象。

案例1

obj1 = ganga()

您创建了ganga类的对象。当您通过对象obj1.course("apple")调用函数时,self参数将自动填充为obj1

案例#2

obj = ganga

在这里,您制作了一个类ganga的副本并将其分配给该变量。因此,当您调用该函数时,它希望您同时指定两个参数。尝试以下-

obj1 = ganga()
obj.course(obj1, "apple")

这将对course执行obj1操作。