我是Python的初学者,我做了一个非常简单的练习。 我将Hello World项目拆分为三个文件。
1.run.py包含主要代码。
run.py
--------------------------------
#!/usr/bin/python
import lib
lib.hw()
printer = lib.hw()
print(printer)
2.lib.py函数。
lib.py
--------------------------------
import data
def hw():
return(data.messages[0])
3.data.py列表。
data.py
--------------------------------
messages = [ "Hello, World!", "It Works" ]
如果您运行run.py,它将打印" Hello,World!"。
我想添加一种方法来选择要从List中打印的值。 所以我在run.py中添加了一个输入promt,并将该int存储在变量" choice"那么我想把它推到"列表索引"在文件lib.py" [0]"这样我就可以决定要打印出哪个值了。当然,我写它的方式并不起作用,只是为了解释我想要做的事情。
run.py
--------------------------------
#!/usr/bin/python
import lib
print("Enter 0 or 1 to print a Message!")
choice = int(input("Enter 0 or 1: "))
lib.hw()
printer = lib.hw()
print(printer)
这里我用[choice]替换了[0]。
lib.py
--------------------------------
import data
def hw():
return(data.messages[choice])
当然这会导致错误:
/functions/lib.py", line 5, in hw
return(data.messages[choice])
TypeError: list indices must be integers, not type
我怎样才能以最简单的方式解决这个问题?
答案 0 :(得分:0)
您需要告诉您选择的功能。在python中,变量不会在多个文件上共享。您需要将def hw():
更改为def hw(choice):
,将printer = lib.hw()
更改为printer = lib.hw(choice)
答案 1 :(得分:0)
将choice
从run.py
传递到lib.hw()
功能,并修改hw()
中的lib.py
功能,以获取参数choice
run.py
--------------------------------
#!/usr/bin/python
import lib
print("Enter 0 or 1 to print a Message!")
choice = int(input("Enter 0 or 1: "))
printer = lib.hw(choice)
print(printer)
lib.py
--------------------------------
import data
def hw(choice):
return(data.messages[choice])