我正在使用pydev开发一个项目。这是我使用pydev的第一个项目。 我的项目结构是:
myProject(project)
projFolder(folder)
userInterface.py
makeTriangle.py
我有一个文件userInterface.py。此文件用于从用户获取输入,并在对另一个文件中的输入执行某些操作后通过类显示所需的结果。
现在我要将此文件返回的值传递给另一个名为makeTriangle的文件。但我无法做到这一点。如何将从一个文件返回的值传递给另一个文件?
如果我在这里做错任何事,请告诉我。您的回复将帮助我提高技能。
### userInterface.py #########
class userInterface():
getList = []
maxList = 4
def getUserList(self):
print("*** getting user input ***")
while len(self.getList) < self.maxList:
item = input("enter numbers: ")
self.getList.append(item)
return self.getList
def showUserList(self,passedList):
print("*** showing user input ***")
print (passedList)
### makeTriangle.py #########
from userInterface import userInterface
class makeTriangle():
### how to get the value of getUserList here
答案 0 :(得分:2)
我会将你的初始化userInterface变量放在 init 方法中:
### userInterface.py #########
class userInterface():
def __init__(self):
#do initialization.
self. getList = []
self. maxList = 4
然后在您的其他文件中,您可以创建userInterface的实例并调用所需的方法。例如,在下面的示例中,doSomething使用userInterface的getUserList。
### makeTriangle.py #########
from userInterface import userInterface
class makeTriangle():
def __init__(self):
#do any initialization.
def doSomething():
### how to get the value of getUserList here
UI = userInterface()
input = UI.getUserList()
for num in input:
#do whatever
我强烈建议您阅读python中的类如何工作。结帐https://docs.python.org/3.2/tutorial/classes.html
答案 1 :(得分:0)
我同意你真的需要阅读文档,但基本上你用self.xxxx标记的任何东西都可以在makeTriange中通过说userInterface.xxxxx来访问你所做的任何方法
所以如果你需要访问maxList变量,那么:
userInterface.maxList
如果你需要使用getuserList()函数,那么
userInterface.getUserList()
但是就像其他海报所说,你应该使用init()。现在,你正在制作CLASS变量。请记住,您通常希望将这些属性赋予您使用类创建的对象,而不是自己的类,init()方法将为您执行此操作。
现在,每次你创建一个三角形时,你都会附加到同一个列表,因为getList是一个CLASS方法,但我想你想要为每个三角形添加一个新的列表,所以你需要将它作为一个INSTANCE方法将它放在init()中,每次用类创建一个对象时都会调用它。
所有这些都在文档中解释。