2015-02-06 2 views
-1

Я сбитый с толку и не могу выразить правильное googlefu при вычислении этого. Я использую argparse, чтобы попытаться использовать CLI args для создания словаря. Как получить jdict из класса? или вызываемый, чтобы я мог добавить его в другой dict и записать в файл? Я ищу, чтобы избежать укладки остальной части кода (чтение файла JSON, добавление нового Dict, писать файл)Python: return dict from class method to main()

class MakeData: 
    def __init__(self, args): 
     self.args = args 

    # Args taken, make dict with 
    def makejson(self): 
     self.jdict = { 
      "key1": self.args.srv[0], 
      "key2": self.args.srv[1], 
      "key3": self.args.srv[2] 
     } 
     return self.jdict 

def main(): 
    args = get_args() 
    s = MakeData(args) 
    s.makejson() 

    # want to print jdict here, made from above class method 
    print jdict 
+0

присвоить результат метода к переменной? – njzk2

+1

просто 'print s.makejson()' или 'jdict = s.makejson(); print jdict' –

+0

Это работает. Спасибо. – oorahduc

ответ

3

Вы возвращаете jdict в коде, показанном. Вы просто не используете переменную для ее хранения.

jdict = s.makejson() 
print jdict 

Или, просто,

print s.jdict 

также будет работать .. Это означает возвращение переменной не нужно

+0

Aha! s.jdict был тем, что я искал. По какой-то причине я думал, что мне нужно определить класс, а затем метод как s.MakeData.makejson. – oorahduc

+0

@pythduc: Рад, что это помогло :) Не стесняйтесь принимать мой ответ, если он был полезен –