我正在尝试从我正在使用的Python类中运行一个示例程序。该程序是负载均衡器模拟,它调用随机脚本名称。这些脚本都是相同的,名为“computer1.py”,“computer2.py”和“computer3.py”。以下是代码的相关部分:
import computer1
import computer2
import computer3
SERVERS = ['computer1', 'computer2', 'computer3']
server = get_server()
print(server.printName())
...
get_server()函数正常工作并返回computer1,computer2或computer3
当我尝试从返回的服务器调用printName()函数时,脚本在下一行炸弹(printName确实存在于所有三个计算机文件中)。
我收到以下错误:
AttributeError: 'str' object has no attribute 'printName'
教师在课堂上使用Python 2.7,所以我猜测3.5中有一些不同的东西导致它无法正常工作。
注意:我不认为这与上述问题重复。我正在尝试使用变量名称动态调用不同的模块。如果我执行以下操作,则脚本可以正常工作:
打印(computer1.printName())
但是当我使用变速器进行通话时,例如:
print(server.printName())
我得到str错误。
答案 0 :(得分:1)
你的get_server从SERVERS数组中返回一个字符串文字,而不是模块。字符串没有printName方法。你的意思是:
SERVERS = [computer1, computer2, computer3]
所以没有引号......