Возникла проблема с IronPython для создания экземпляра класса в консоли IronPython - PullRequest
1 голос
/ 11 сентября 2009

Я пытаюсь выучить IronPython. Я создал очень простой класс, подобный этому:

class Test:
  def testMethod(self):
    print "test"

Далее я пытаюсь использовать его в консоли IronPython:

>>> import Test
>>> t = Test()

После второй строки я получаю следующую ошибку:

TypeError: Scope не вызывается

Что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 11 сентября 2009

вам нужно from filename import Test, где filename является базовым именем класса файла, в котором сохранен тест.

Например: класс Test сохраняется в test.py

, то:

from test import Test
t = Test()

будет работать как ожидалось.

2 голосов
/ 11 сентября 2009

import Test загружает модуль с именем Test, определенный в файле с именем Test.py (c | d). Этот модуль в свою очередь содержит ваш класс с именем Test. Вы пытаетесь создать экземпляр модуля с именем Test. Чтобы создать экземпляр класса Test в модуле Test, вам нужно использовать:

t = Test.Test ()

Эта концепция может быть довольно хитрой, особенно если у вас есть опыт работы на других языках. Мне тоже понадобилось время, чтобы понять:)

...