2014-06-17 2 views
0

저는 Anaconda 배포판에서 Python 2.7을 사용하고 있습니다. 나는 복잡한 데이터 통합 ​​프로세스를 여러 클래스와 함수로 구성하여 더 잘 관리 할 수 ​​있도록 노력하고 있습니다.별도의 클래스에서 함수를 실행하는 방법은 무엇입니까?

import function_test 

perform = function_test.Perform 
perform.work 
:

는 간단한 예로서, 나는

import pandas as pd 
import numpy as np 

class Perform: 
    def work(self): 
     test_df = pd.DataFrame(np.random.randn(10,4), columns=['a','b','c','d']) 
     print "really?" 
     print test_df 

function_test.py 내가 전화와 같은 디렉토리에 function_call.py에서 위의 논리를 실행할라는 파일에 내 프로세스의 일부가

그러나 function_call.py를 실행하면 다음 메시지가 표시되고 아무 것도 인쇄되지 않습니다.

UMD has deleted: function_test 

function_test를 가져 와서 실행할 수 있도록이 예제를 어떻게 설정합니까? function_call.py에서 test_df를 사용할 수 있습니까?

모든 조언을 주시면 감사하겠습니다. 의

답변

1

첫째,과 같이 이전 스타일 클래스를 사용하지 마십시오

class Perform: 
    pass 

를 사용하여 새로운 스타일 클래스 :

class Perform(object): 
    pass 

다음, 당신이 기억해야 - work방법입니다 클래스 Perform입니다. 따라서 먼저 인스턴스를 만들어야합니다.

perform = function_test.Perform() 
perform.work() 

이제 작동합니까?

+0

function_test.py에서 실행되고 인쇄됩니다. function_call.py에서 test_df를 사용하려면 어떻게해야합니까? 나는 test_df.dtypes 프린트를 추가했고 'test_df'에러가 정의되지 않았다. – analyticsPierce

+0

함수 :'return test_df'에서 반환하고 사용할 수 있습니다 :'test_df = perform.work()' – dt0xff

1

대괄호를 추가하십시오.

perform = function_test.Perform() 
perform.work() 
관련 문제