2014-09-26 8 views
0

저는 pydev를 사용하여 프로젝트 작업을하고 있습니다. 이것은 pydev를 사용하는 첫 번째 프로젝트입니다. 내 프로젝트 구조는 다음과 같습니다 내가 파일 userInterface.py을했습니다pydev는 한 파일에서 다른 파일의 다른 클래스로 값을 접근합니다.

myProject(project) 
    projFolder(folder) 
     userInterface.py 
     makeTriangle.py 

. 이 파일은 사용자로부터 입력을 받고 다른 파일의 입력에 대해 일부 작업을 수행 한 후 클래스를 통해 원하는 결과를 표시하는 데 사용됩니다.

이제이 파일에서 반환 된 값을 makeTriangle이라는 다른 파일로 전달해야합니다. 그러나 나는 그것을 할 수 없다. 한 파일에서 다른 파일로 반환 된 값을 전달하는 방법은 무엇입니까?

여기에 잘못된 것이 있으면 알려 주시기 바랍니다. 귀하의 반응은 제 능력을 연마하는 데 도움이 될 것입니다.

### userInterface.py ######### 
class userInterface(): 
    def __init__(self): 
     #do initialization. 
     self. getList = [] 
     self. maxList = 4 

그런 다음 다른 파일에 당신이 후 UserInterface의 인스턴스를 만들 수 있으며, 필요한 메소드를 호출 :

### 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 

답변

2

나는 초기화 방법 후 UserInterface 변수의 당신의 initialiaztion을 둘 것입니다. 아래 예제에서 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

0

난 당신이 정말로 문서를 읽을 필요가 동의하지만, 기본적으로는 self.xxxx 그래서 당신 경우 userInterface.xxxxx

말하여 당신이 makeTriange에 액세스 할 수있는 한 모든 방법으로 labled 어떤 일 maxList 변수에 액세스해야하는 그 :

userInterface.maxList 

당신이 getUserList로() 함수를 사용해야 할 경우, 그

userInterface.getUserList() 

그러나 다른 포스터와 마찬가지로 init()를 사용해야합니다. 지금은 CLASS 변수를 만들고 있습니다. 기억해 두십시오. 일반적으로 클래스를 사용하지 않고 클래스를 사용하여 만든 객체에 이러한 속성을 제공하려는 경우 init() 메서드가 대신이 작업을 수행합니다.

지금 당장, 삼각형을 만들 때마다 getList가 CLASS 메서드이기 때문에 같은 목록에 추가됩니다. 그러나 각 삼각형에 대해 새 목록을 원한다고 생각하므로 INSTANCE 메서드로 만들 필요가 있습니다. init()에 넣으면 클래스와 함께 객체를 만들 때마다 암시 적으로 호출됩니다.

이 모든 것이 문서에서 설명됩니다.

관련 문제