2014-01-31 2 views
0

안녕하세요, 파이썬에서 다른 파일에서 클래스를 가져오고 싶습니다. 그러나 가져 오려는 클래스는 명령 행 인수를받습니다. 가져온 후 (성공적 임) 클래스에서 명령 줄 인수를 어떻게 제공합니까? (측면 : 노트는 슈퍼 클래스 또는 어떤이는 그게 무슨 뜻인지 나도 몰라?)다른 파이썬 파일 문제에서 클래스 가져 오기

#class I'm importing 
class trend: 

def __init__(self): 
    self.user_name = sys.argv[1] #receives commandline argument 

_______________________________________________________________ 

#class I want to use it in 
class game: 

    def __init__(self): 
     self.twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET) 

    def do_something(self): 
     import filenameforthetrendclass as TC 
     game = TC.trend() #how do I bring in the commandline argument in here? 
+0

인스턴스 속성을 설정하는 것은 매우 나쁜 방법이므로 클래스를 다시 작성해야합니다. – roippi

+0

@roippi 네, 그건 내 계획 B, 좋은 디자인 패턴을 배우려고 메신저. – user3255763

답변

0

그것은 어디 sys.argv를 사용하는 나쁜 생각하지만 최상위에 (main, 해당되는 경우). 그건 당신이 전달해야합니다.

먼저 생성자에 대한 매개 변수로 user_name 걸릴 다시 작성하십시오. 단지 Trend

빠른 예 :

class Trend(object): 

    def __init__(self, user_name): 
     self.user_name = user_name 

trend = Trend(sys.argv[1]) 

이제 전체 개념을 통합 :

import sys 
from filenameforthetrendclass import Trend 

class Game(object): 

    def __init__(self): 
     self.twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET) 

    def do_something(self, user_name): 
     a_trend = Trend(user_name)  # was originally 'game = ' 


def main(): 
    game = Game() 
    game.do_something(sys.argv[1]) 

주 :

  • 내가 클래스
  • I에 대한 대문자 이름을 사용하고을 'de finely 클래스 이름이 game이 아니고 어딘가에 game을 로컬 변수로 사용합니다.
관련 문제