无法在Python 3.5

时间:2016-10-15 16:32:27

标签: python python-3.5

我正在尝试从我正在使用的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错误。

1 个答案:

答案 0 :(得分:1)

你的get_server从SERVERS数组中返回一个字符串文字,而不是模块。字符串没有printName方法。你的意思是:

SERVERS = [computer1, computer2, computer3]

所以没有引号......