Переменные модуля Python Cross - PullRequest
       11

Переменные модуля Python Cross

1 голос
/ 12 февраля 2011

Я понимаю, что есть другие потоки, решающие эту проблему, но, поскольку я довольно новичок в «Классах» и уже создал свою структуру классов ... Я хотел бы найти метод, который можно интегрировать в мой код. Я уверен, что это не будет трудным, чтобы ответить!

Первый файл: NameResult.py

from NameAssign import *

NameList = NameWorks()
print(NameList.InputNames(NameVar))

Второй файл: NameAssign.py

class NameWorks:
    def __init__(self, NameVar = []):

        self.NameVar = NameVar

    def InputNames(self, NameVar):
        global NameVar
        NameVar = ['harry', 'betty', 'sam']

Результат:

NameError: name 'NameVar' is not defined

Все ответы очень ценятся ...

1 Ответ

4 голосов
/ 12 февраля 2011

NameVar не определено в NameAssign; он существует только в NameAssign.NameWorks.InputNames() как локальная переменная. Самый простой способ исправить это - определить его в NameAssign на глобальном уровне.

Edit:

Оказывается, это то, что вы хотите сделать:

NameResult.py

import NameAssign

namelist = NameAssign.NameWorks(['harry', 'betty', 'sam'])
print namelist.InputNames()  # or print(...) for Py3k

NameAssign.py

class NameWorks(object):
  def __init__(self, names):
    self.names = names

  def InputNames(self):
    return self.names
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...