Учитывая method1
, который устанавливает некоторые переменные, вы можете отправить их следующему методу:
def method1():
foo = "thisisfoo"
bar = "thisisbar"
myList = [foo, bar]
method2(myList, foo)
def method2(myList, foo):
print foo
Не ясно, для чего вам нужен список, но отправьте то, что вам нужно.
Изменение вызывающего кода также будет работать, чтобы просто взять строку:
# as before
method2(foo)
def method2(foo):
print foo
Теперь, я подозреваю, есть больше контекста.Если вы хотите иметь доступ к переменной из нескольких мест, вы можете использовать класс.
class Data
def __init__(self):
self.foo = "thisisfoo"
self.bar = "thisisbar"
self.myList = [foo, bar]
def method(self):
print self.foo
Затем вы можете создать экземпляр и вызвать метод:
data = Data()
data.method()
(Data
, вероятно, не лучшее имя для класса, который делает вещи, но это показывает, как настроить элементы в __init__
как члены и запомнить их для последующего использования).
Редактировать вЛегкий комментарий.
Облегченный способ сделать что-то для хранения данных, на которые вы хотите сослаться, - это именованный кортеж.
from collections import namedtuple
Data = namedtuple('Data','foo bar')
data = Data('one', 'two')
Затем вы можете получить доступ к элементам, foo
, bar
вот так:
>>> data.foo
'one'
Итак, как и в классе, вы указываете «тип» и можете ссылаться на него, прежде чем создавать его.
Или создать словарь
data = {}
и добавляйте вещи по мере необходимости
data['Table'] = 'MyTable'
и используйте их по мере необходимости.
print data['Table']
Имейте в виду, что это вызовет исключения, если элемент, который вы запрашиваете, не являетсяне там.