我有以下python代码:
#module1
from module2 import reader
def registration(userName, password, fileName, delimiter):
with open(fileName, 'a') as file:
file.write(userName + delimiter + password + '\n')
return reader(fileName, delimiter)
#module2
def reader(fileName, delimiter):
retVal = []
with open(fileName, 'r') as file:
for line in file:
pair = line.split(delimiter)
pair[1] = pair[1].strip()
retVal.append(pair)
return retVal
现在,我应该得到的是包含用户名和密码字符串的列表列表。读者确实阅读了之前编写的条目,但没有读取刚刚通过注册功能添加的条目。如果我调用reader
函数两次(在返回之前再一次),我的注册函数会返回正确的列表(使用新添加的用户)。
知道为什么会这样吗?
答案 0 :(得分:1)
我遇到了用于调用这些函数的主要方法的问题。由于两个模块都有一个单独的main来打印出函数的结果(并且main在模块文件中被显式调用),因此当我导入函数时,读取器的主要被激活(这是我不知道的事情) python做了,尤其是当我使用from
关键字时)。
无论如何,抱歉是误报。