Уведомления

Группа в Telegram: @pythonsu

#1 Май 31, 2009 09:51:35

rtursun
От:
Зарегистрирован: 2009-05-31
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка: NameError: name 'Node' is not defined

Добрый день.

Недавно нашла готовый код для нахождения центра графа на языке питон. К сожалению сама в этом языке плохо разбираюсь. При компиляции программа выдает ошибку

“Traceback (most recent call last):
File ”C:\Documents and Settings\admin\Мои документы\11“, line 9, in <module>
class Node:
File ”C:\Documents and Settings\admin\Мои документы\11", line 75, in Node
n0=Node(,4)
NameError: name ‘Node’ is not defined"

Помогите, в чем проблема? Буду очень благодарна!!!

from threading import *
from time import sleep
from sys import stdin,stderr,exit
from copy import copy
from math import log, floor
from random import randrange, choice
from time import time

class Node:
def __init__(s,neigh,d,initiator=True):

s.caw=None
s.rec=0
s.father=None
s.lrec=0
s.win=None
s.d=d
s.initiator=initiator
s.state=['state','sleep']
s.neigh=neigh
s.th=Thread(target=s.extinct_echo_center)
s.id=int(s.th.getName()[7:])-1
s.num=0
s.rmsg=None
s.buffer=[ ]

def send(s,d,msg):
d.buffer.append(msg)
def check(s):
s.rmsg=s.buffer.pop(0)
return s.rmsg
def start(s):
s.th.start()
def getName(s):
return s.id
def repr (s):
return str(s.id)
def add_link(s,z):
s.neigh.append(z)
def extinct_echo_center(s):
addr=dict([(node.id,node) for node in nodes])
s.num=len(s.neigh)
if s.initiator:
s.caw=s.d
for q in s.neigh:
s.send(q,('tok', s.d, s.id))
while s.lrec<s.num:
sleep(0.01+choice((0.001, 0.002, 0.003)))
if s.buffer:
name,r,qid=s.check()
if name=='ldr':
if s.lrec==0:
for q in s.neigh:
s.send(q,('ldr', r, s.id))
s.lrec+=1
s.win=r
else:
if r<s.caw:
s.caw=r
s.rec=0
s.father=qid
for p in s.neigh:
if not p.id==qid:
s.send(p,('tok', r, s.id))
if r==s.caw:
s.rec+=1
if s.rec==s.num:
if s.caw==s.id:
for p in s.neigh:
s.send(p,('ldr',s.d,s.id))
else: s.send(addr[s.father],('tok',s.caw,s.id))
if s.win==s.d:
s.state='Centre'
else: s.state='remote'
n0=Node([ ],4)
n1=Node([n0],3)
n2=Node([n1],4)
n3=Node([n1],3)
n4=Node([n1,n3],3)
n5=Node([n4],4)
n6=Node([n5],5)
n7=Node([n2],5)
n0.add_link(n1)
n1.add_link(n2)
n1.add_link(n3)
n1.add_link(n4)
n2.add_link(n7)
n3.add_link(n4)
n4.add_link(n5)
n5.add_link(n6)
nodes=[n0,n1,n2,n3,n4,n5,n6,n7]
for node in nodes: node.start()
t0=time()
while 1:
alive=0
for node in nodes: alive+=node.th.isAlive()
print >>stderr,'%d threads alive'%alive
if alive==0: break
sleep(1)
for node in nodes:print node.id,'is',str(node.state)



Офлайн

#2 Май 31, 2009 10:04:06

rtursun
От:
Зарегистрирован: 2009-05-31
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка: NameError: name 'Node' is not defined

Уже сама разобралась! Всем спасибо! :)



Офлайн

#3 Июнь 4, 2009 22:19:27

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Ошибка: NameError: name 'Node' is not defined

описывай что было …. не указала r“” ?

Офлайн

#4 Фев. 6, 2011 14:08:33

siwnik
От:
Зарегистрирован: 2011-02-06
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка: NameError: name 'Node' is not defined

Надо писать class Node():



Офлайн

#5 Фев. 6, 2011 14:18:04

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Ошибка: NameError: name 'Node' is not defined

Не надо, вас обманули



Офлайн

#6 Фев. 6, 2011 14:30:57

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Ошибка: NameError: name 'Node' is not defined

В отступах же проблема…



Офлайн

#7 Фев. 6, 2011 14:36:02

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Ошибка: NameError: name 'Node' is not defined

Конечно, в отступах.
Игорь, девушка сама всё починила. Полтора года назад.
А какое-то чудо начало давать советы. И все бы ничего - но совет неправильный :)



Офлайн

#8 Фев. 6, 2011 15:00:59

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Ошибка: NameError: name 'Node' is not defined

Андрей Светлов
А какое-то чудо начало давать советы. И все бы ничего - но совет неправильный :)
опс, не посмотрел на дату… надо было еще умудриться эту тему откопать и оставить в ней свое первое сообщение :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version