【发布时间】:2020-01-03 20:14:10
【问题描述】:
我正在尝试运行一些代码,允许我从我称为 Master_programmer 的类中调用名称 Student 或 Programmer。这是我使用的代码。
class Master_programmer:
capabilities = []
student = "SoloLearn Student"
programmer = "Programmer"
def Student(self):
return 'SoloLearn Student'
def Programmer(self):
return 'Programmer'
def __init__(self, name):
self.name = name
def add_capabilities(self, capability):
self.capabilities.append(capability)
m1 = Master_programmer(programmer)
print(m1.Student, m1.Programmer)
a.add_capabilities('Stay Inspired')
b.add_capabilities('Find Clients')
b.capability
运行上述代码后,出现以下错误
Traceback (most recent call last):
File "./Playground/file0.py", line 21, in <module>
m1 = Master_programmer(programmer)
NameError: name 'programmer' is not defined
现在,我的问题是,如何让我的代码提供预期的结果?例如,当我请求调用名称“程序员”时,我希望它会调出程序员,然后允许我向程序员添加功能,例如“查找客户”。对于学生来说,它必须是“保持灵感”。
【问题讨论】:
-
您显示的代码不会产生该错误
-
你说得对,让我更新一下。
-
我已经更新了代码。有什么想法吗?
-
变量
programmer直到您实例化对象后才存在,但您试图在创建对象时将其传递给init -
也不清楚为什么你有类属性
student和programmer以及似乎只是返回它们的值的方法。