Я пытаюсь написать свою собственную оболочку в Python с помощью модуля cmd, и я не знаю, как решить свою проблему даже после чтения hundreads тем в Интернете.Передача аргументов методу с модулем cmd
def do_triangle_area(a, h):
"Calculating tiangle's field"
print (1/2*a)*h
Я просто хочу, чтобы передать «а» и «з» аргументы через командную строку, запустив программу, и когда я печатаю
$ tiangle_area 5 2
Он должен вернуть мне результат, но есть ошибка:
Traceback (most recent call last):
File "test8.py", line 75, in <module>
CMD().cmdloop()
File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
stop = self.onecmd(line)
File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
return func(arg)
File "test8.py", line 17, in do_triangle_area
print (a*b)
TypeError: object cannot be interpreted as an index
Я пытался добавить Самости рассуждение
def do_triangle_area(self, a, h):
"Calculating tiangle's field"
print (1/2*a)*h
Но это не работает слишком:
Traceback (most recent call last):
File "test8.py", line 75, in <module>
CMD().cmdloop()
File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
stop = self.onecmd(line)
File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
return func(arg)
TypeError: do_triangle_area() takes exactly 3 arguments (2 given)
Все в одном классе, УМК модуль импорта. Все хорошо, когда это один аргумент - проверен, работает блестяще, но потом он ничего не может вычислить для меня. Но почему он не может обрабатывать более одного аргумента от пользователя? Как это работает?
Что я могу сделать в этой ситуации? Дайте мне какие-то намеки, пожалуйста, потому что я стучал головой о стену ...
EDIT: Всего код http://pastebin.com/3EVBbvfN EDIT2: Paste истек - новая паста: http://pastebin.com/3wM021s1
Включить код для 'Защиту onecmd' или где вы разобрать строку – TemporalWolf
[http://pastebin.com/3EVBbvfN] Я не знаю, что вы просите, чтобы я 'm, включая весь код –
Пожалуйста, кто-нибудь может мне помочь? –