2016-03-23 5 views
0

Это невероятно noobish, но вот пример того, что я хочу:Как объявить переменную как файл в python?

class A: 
    def __init__(self): 
     self.m_file = file() # name required 
     self.m_file = None # readonly attribute error 
     self.m_file = "" # readonly attribute error 
    def ButtonPressed(self): 
     self.m_file = open(tkFileDialog.askopenfilename(), 'r') 

Ни одна из попыток в __init__ работе. Я попытался найти python init variable as file, но эти ключевые слова вывели много сообщений, не отвечая на вопрос.

+3

Вы не можете заранее объявлять типы переменных в Python; он динамически набирается. Все, что вы назначили 'self.m_file', будет перезаписано в' ButtonPressed() 'в любом случае, поэтому не имеет значения, что вы делаете в' __init__' – DaveBensonPhillips

+0

Вы не объявляете переменные в python. Как только он назначен в 'ButtonPressed', вы получите свой файл. –

+0

Каков фактический вопрос? Какова ваша конечная цель? Это мне непонятно. – Goodies

ответ

2

Как отмечено в комментариях, функция open() в методе ButtonPressed перезапишет все, что было сделано в вызове __init__. Я рекомендовал бы держать эту линию

def __init__(self): 
    self.m_file = None 

Как это позволит вам проверить, является ли переменная значение Нет, прежде чем использовать его где-то в классе

-2

Возможно, вы захотите использовать open() method. Я не думаю, что вы захотите сделать это в своем конструкторе, но open() - это то, что вы ищете.