Подпроцесс с переменными и командами из другого класса - PullRequest
0 голосов
/ 03 января 2011

============================================

Исправлено

Успешно исправить это, вот правильный способ сделать это для будущих зрителей: http://pastebin.com/uM0z8Q2v

============================================

источник: http://pastebin.com/utL7Ebeq

МойМысль заключается в том, что если я запускаю из класса контроллера «main», это позволит мне взять «данные» из класса «model», def «имя файла».Это не похоже на работу.Как вы можете видеть ниже, что я имею в виду

class Controller:
    def __init__(self):
        self.model = Model()
        self.view = View()
    def main(self):
        data = self.model.filename()
        self.view.tcpdump(data)
class View:
    def tcpdump(self, command):
        subprocess.call(command.split(), shell=False)

Когда я запускаю свой код, я получаю эту ошибку:

subprocess.call(command.split(), shell=False)
AttributeError: 'NoneType' object has no attribute 'split'

Мое предположение означает, что команда не отвечает (посмотрите на источник дляссылка) или что это не получение команды с переменными.Но я знаю ошибку, когда переменные не выбираются, поэтому я не думаю, что это так.

Мой вопрос в том, что из того, что я имею до сих пор, как мне из "вида классов" взять "команду" для запуска моих подпроцессов.

Спасибо ~

ДжонRiselvato

Ответы [ 3 ]

2 голосов
/ 03 января 2011

Вы ничего не возвращаете с filename(). Когда вы ничего не возвращаете, вместо этого возвращается None, поэтому параметр от command до tcpdump равен None, что выдает ошибку: вы не можете вызвать split() для объекта None .

Измените функцию filename() в классе Model, чтобы она возвращала строку.

1 голос
/ 03 января 2011

После строки 20 добавьте:

return self.raw

Поскольку вы ничего не возвращаете из функции, функция возвращает None, и поэтому вы получаете ошибку.

0 голосов
/ 05 января 2011

Успешно исправить это, вот правильный способ сделать это для будущих зрителей: http://pastebin.com/uM0z8Q2v

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...