Получение сообщения об ошибке при попытке присоединить класс к объекту - PullRequest
0 голосов
/ 20 октября 2011

У меня есть небольшая проблема, когда я пытаюсь присоединить класс к объекту в Python.У меня есть текстовый файл «файл», который разделен на список для каждой строки.Программа прочитает каждую строку и напечатает имя и длинное имя.Представьте, что текстовый файл выглядит так:

"Джон '\ n' Джон Траволта" (...)

Вот мой бит кода:

class Name:
  def __init__(self, name, longname):
   self.name=name
   self.longname=longname
  def __str__(self):
   s="Name:"+self.name
   s+="\n Longname:"+self.longname
  def func():
   for line in file:
       name=line[:1]
       longname=line['\n':]
c=Name(name, longname)
c.func()

Iполучить сообщение об ошибке, что мои «имя» и «длинное имя» не определены, но я сделал это с моей функцией ???: (

Это работает, если я помещаю функцию вне класса, например:

def func():
 for line in file:
  name=line[:1]
  longname=line['\n':]
  c=Name(name, longname)
  print c

Нужна помощь!

1 Ответ

1 голос
/ 20 октября 2011

Вам необходимо присвоить имя и длинное имя, прежде чем вы сможете их использовать:

name = 'foo'
longname = 'foo bar'
c=Name(name, longname)
c.func()

но я сделал это с моей функцией?

Нет.

  • Во-первых, вы еще не вызывали свою функцию.Вызов функции - это после строки, которая выдает ошибку.
  • Во-вторых, функция имеет свою область видимости.name отличается от глобального name.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...