2015-07-13 17 views
5

więc napisałem jakąś klasę w skrypcie Pythona jak:połączeń Python metody klasy z linii poleceń

#!/usr/bin/python 
import sys 
import csv 
filepath = sys.argv[1] 

class test(object): 
    def __init__(self, filepath): 
     self.filepath = filepath 

    def method(self): 
     list = [] 
     with open(self.filepath, "r") as table: 
      reader = csv.reader(table, delimiter="\t") 
      for line in reader: 
       list.append[line] 

Jeśli zgłoszę ten skrypt z wiersza poleceń, jak jestem w stanie wywołać metodę? więc zwykle wpisuję: $ python test.py test_file Teraz wystarczy wiedzieć, jak uzyskać dostęp do funkcji klasy o nazwie "metoda".

+0

być bardziej oczywiste – The6thSense

+0

możliwe duplikat [Pythonie Uruchomienie funkcji z linii polecenia] (http://stackoverflow.com/questions/3987041/python-run-function-from-the-command- line) – Sam

Odpowiedz

2

Można by utworzyć instancję klasy, a następnie wywołać metodę:

test_instance = test(filepath) 
test_instance.method() 

Należy zauważyć, że w Pythonie nie mieć do tworzenia klas tylko do uruchomienia kodu. można po prostu używać prostych funkcji tutaj:

import sys 
import csv 

def read_csv(filepath): 
    list = [] 
    with open(self.filepath, "r") as table: 
     reader = csv.reader(table, delimiter="\t") 
     for line in reader: 
      list.append[line] 

if __name__ == '__main__': 
    read_csv(sys.argv[1]) 

gdzie przeniesiona wywołanie funkcji do __main__ strażnika, dzięki czemu można również użyć skryptu jako moduł i zaimportować funkcję read_csv() do użycia w innym miejscu.

+0

Wiem, że mogłem użyć tej funkcji bez pisania jej w klasie, ale byłem po prostu ciekaw, jak to będzie możliwe :) – JadenBlaine

0

Otwórz interpreter języka Python z wiersza poleceń.

$ python 

Zaimportuj swój moduł kodu Pythona, utwórz instancję klasy i wywołaj metodę.

>>> import test 
>>> instance = test(test_file) 
>>> instance.method()