Nadawanie nazwy wyrzuca blad

0

Witam,
na studia dostalem zadanie do poprawy pewien kod, ktory szczerze mowiac nie bardzo rozumiem, oraz nie rozumiem jak go poprawic, w kazdym razie blad pojawia sie dla ponizszego kodu:

class Klient:
    
    s = None
    adres = None
    port = None
    nazwa = None
    def __init__(self, adres, port):
        self.adres = adres
        self.port = port
    
    def start(self):
        try:
            self.polacz()
        except:
            print "Problem przy laczeniu z serwerem."
            exit(0)
            nazwa = raw_input("Podaj swoja nazwe(moze zawierac tylko znaki z angielskiego alfabetu\n")
        self.c.send(bytearray(nazwa, 'utf-8'))
        self.petla()

zwraca mi blad : line 96, in start
self.c.send(bytearray(nazwa, 'utf-8'))
AttributeError: Klient instance has no attribute 'c'

z tym ze na samym poczatku mam zdefiniowane 'c' jako polaczenie :

def sluchaj(s, lista):
    while True:
        c, addr = s.accept()
        gracz = {}
        gracz["conn"] = c

wiec nie wiem dlaczego to wywala blad :(

0

Pole c klasy Klient nie jest nigdzie ustawiane - cały czas jest nullem.

0

To wiem bo nawet pisalem to wyzej, tylko jak zdefiniowac to C zeby dzialalo to pojecia nie mam :P

0

No ale twoje c to jest jakaś zmienna lokalna w jakieś funkcji z d**y i nie ma NIC wspólnego z klasą Klient.

0

Musisz ustawić pole tej klasy, a nie jakąś tam sobie zmienną lokalną.
Wiesz, co to jest zmienna lokalna oraz pole klasy?

1 użytkowników online, w tym zalogowanych: 0, gości: 1