从另一个python文件问题导入一个类

时间:2014-01-31 02:59:01

标签: python

您好我想从python中的另一个文件导入一个类,一切正常但是我要导入的类接收命令行参数。导入后(成功)我将如何在类中提供该命令行参数? (旁边:注意这是一个超类还是什么?idk意味着什么)

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

1 个答案:

答案 0 :(得分:0)

在任何地方使用sys.argv是一个坏主意,但在顶级(main,如果有的话)。这是你应该传递的东西。

首先,重新编写Trend以将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])

注意:

  • 我正在使用类的大写名称
  • 肯定没有名为game的类,然后在某处使用game作为局部变量。