h_u*_*ser 1 python class function
我正在尝试从python中的类调用函数.这是我的代码:
class JCMT:
def be(self):
if self > 330000:
return 0.64
else:
return 0.69
def bs(self):
if self > 330000:
return 14
else:
return 20
f = 220258
print JCMT.bs(f)
Run Code Online (Sandbox Code Playgroud)
我收到TypeError的错误:必须使用JCMT实例作为第一个参数调用unbound方法bs()(改为使用int实例)
有人能告诉我哪里出错了吗?
有一些问题,我发表了评论:
class JCMT:
# Add parameter
def bs(self, n):
if n > 330000:
return 14
else:
return 20
f = 220258
# Make a new instance
j = JCMT()
# Call now, and pass variable
print j.bs(f)
Run Code Online (Sandbox Code Playgroud)
self方法签名中的部分是唯一的.您可以在此答案中阅读更多相关信息.
在函数正上方添加一个静态方法装饰器,表示在类上调用的静态函数:
@staticmethod
Run Code Online (Sandbox Code Playgroud)
问题是你的self参数对应于在函数调用期间隐式传递的实例对象,因此在提供类时会引发错误.您必须删除self参数并使用参数来表示数字参数.