Если один из классов действительно может быть подклассом другого класса, вы можете использовать наследование.
class One(object):
def func1(self):
var1 = 'foo'
class Two(One):
# func1 already exists here.
# So does var1
Вы можете сделать функцию принимать аргументы
class One(object):
def func1(self):
var1 = 'foo'
class Two(object):
def func2(self, var):
# Use var
Или вы можете использовать глобальные переменные, но я думаю, что вы хотите, чтобы избежать этого, если вы просто введя ООП.
Примечание: Позвольте мне указать, что использование глобальных переменных в крупных проектах и программах подвержено многим ошибкам на практике. Вы можете использовать его, пока не получите опыт перехода к другому методу. Но в конечном итоге вам придется отказаться от использования их в ООП. Я предложил это только для практических целей. Помните об этом во время кодирования.
Редактировать: В вашем случае вы можете использовать элементы статического класса, например.
class One(object):
var1 = "foonimo"
def func1(self):
#use var1
class Two(object):
def func2(self, var):
# Use as One.var1
Это должно работать, и это более возможно, чем глобальные переменные.
Вы должны либо передать переменную методу, либо один из классов может наследовать от другого и, таким образом, получить его переменные, но это предполагает, что вы достаточно хорошо понимаете ООП, чтобы знать разницу между самим абстрактным классом и (как показано, переменная существует только в локальной области действия метода и определяется ее методом '__init__'). Вы также можете сделать глобальную переменную или часть объекта третьего класса, которые используют One и Two. Трудно сказать «Один» и «Два» и не понимать фактические отношения данных. – Dan
Также возможно, что вы хотите, чтобы 'var1' являлся переменной экземпляра, а не локальной переменной (например, 'self.var1 = 'foo''). Тогда 'func2' мог получить доступ к его значению, если бы у него была ссылка на экземпляр' One' (хотя из того, откуда этот экземпляр пришел, невозможно сказать, насколько абстрактным является этот вопрос). – Blckknght
Вы получите намного лучшие ответы, если вы сделаете это менее абстрактным, чтобы понять связь между «одним» и «двумя» (если таковые имеются) (выберите аналогичную взаимосвязь, если реальная является конфиденциальной). – Dan