Python类内调用pLink函数报‘未定义’错误,求助排查
问题原因与解决方法
你忽略了Python中类成员方法的调用规则:类内部定义的pLink是实例方法,必须通过类的实例对象来调用,不能直接全局调用。
具体问题
当你在类内定义pLink后,如果直接写pLink(),Python会在全局作用域中查找这个函数,但它是Book类的成员,不属于全局作用域,所以会报“未定义”错误。而把它移出类后,它变成了全局函数,直接调用自然能正常运行。
修正方法
调用类的实例方法时,必须通过创建好的实例(比如你定义的b1)来访问,格式为实例名.方法名():
# 在创建b1之后添加调用代码 print(b1.pLink())
补充说明
另外你的代码里a1.name未定义,运行时也会报错,需要先定义a1对象或者直接传入作者名字字符串,比如替换成"Wilson Rawls"。
内容的提问来源于stack exchange,提问作者Bheese
相关产品推荐
相关产品推荐

