关于如何实例化类的问题
第37讲第5题的代码出错原因小甲鱼说的是未实例化调用方法缺少self参数。问题1.如何添加self参数使程序成功运行?
问题2.如何将类MyClass实例化,从而成功运行程序? 要发文本代码 class MyClass:
name = 'FishC'
def myFun(self):
print("Hello FishC!")
>>> MyClass.name
'FishC'
>>> MyClass.myFun()
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
MyClass.myFun()
TypeError: myFun() missing 1 required positional argument: 'self'
>>>
pengdonghan 发表于 2022-3-9 11:36
需要绑定才能使用啊!
得先:
myclass = MyClass()
myclass.myFun()
除非你去掉类在定义中的 self ! 我试着将MyClass实例化,发现后面加括号就可以输出方法,不加括号还是会报错。
请问加括号与否,对MyClass的类型有什么影响
class MyClass:
name = 'FishC'
def myFun(self):
print("Hello FishC!")
my = MyClass()
type(my)
<class '__main__.MyClass'>
my.myFun()
Hello FishC!
my = MyClass
type(my)
<class 'type'>
my.myFun()
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
my.myFun()
TypeError: MyClass.myFun() missing 1 required positional argument: 'self' pengdonghan 发表于 2022-3-9 11:45
我试着将MyClass实例化,发现后面加括号就可以输出方法,不加括号还是会报错。
请问加括号与否,对MyClass ...
加括号是指将这个类的类对象传递给 my,形成实例对象,是可调用的,
而不加括号就是指将这个类本身传递给 my,又因为有 self 绑定,所以无法调用!
你后面小甲鱼就会讲到这三个类型了:类,类对象,实例对象! python爱好者. 发表于 2022-3-9 11:55
加括号是指将这个类的类对象传递给 my,形成实例对象,是可调用的,
而不加括号就是指将这个类本身传递 ...
感谢感谢{:5_106:}
页:
[1]