2015-01-17 4 views
0

Я пытаюсь сделать это в методе испытания:создать частный класс в методе испытания

def test_init(self): 
    class args: 
     def __init__(self): 
      self.server = "myserver" 
      self.project = "myproject" 

    print(args.server) 
    print(args.project) 
    CommandFile(args) 

на первом внешнем виде, он выглядит, как он должен работать нормально, передавая объект ARGS в моем конструктор класса , но по какой-то причине его нет. Довольно уверен в его синтаксической проблеме, но я никогда не пробовал это с помощью python, прежде чем я не уверен. есть идеи?

+1

Вы ссылаетесь на 'args.server' и' args.project', прежде чем присваиваете им значения. –

ответ

2

Вы путаетесь между переменными класса и экземпляра. args - это класс и не имеет атрибутов server или project. У экземпляра argsесть эти атрибуты, поскольку они назначены в __init__, но вы никогда не создаете экземпляр объекта, чтобы метод никогда не вызывался.

Если вы придерживаетесь стандартного синтаксиса имен PEP8, возникнет путаница, так как вы бы назвали класс Args и экземпляр args.

+0

ugh, im retard. идет с 36-часовым развертыванием. благодаря – scphantm

Смежные вопросы