Własne moduły, jak to ugryźć

Własne moduły, jak to ugryźć
SH
  • Rejestracja:ponad 4 lata
  • Ostatnio:16 dni
  • Lokalizacja:Łódź
  • Postów:73
0

Witam, próbuje nauczyć programować swoje moduły, jednak jak to na początku bywa napotkałem na problem. Mam dwa pliki - start.py

Kopiuj
import sypialnia

sypialnia.__init__(5,8)

i drugi sypialnia.py

Kopiuj
class Program:
    def __init__(self,a,b):
        self.a = a
        self.b = b
        
        self.c = self.a+self.b

Po wysłaniu dwóch danych 5 i 8 otrzymuje wynik module() argument 'name' must be str, not int, dlaczego nie mogę wysłać argumentu int tylko string. Druga rzecz jaka mnie interesuje a jakiej nie mogę znaleźć to jak wysłać zmienną c z powrotem do start.py. Nie chce tego robić na zasadzie dodania w def init print(self.c). Potrzebuje wykorzystać zmienną self c do dalszych wyliczeń w pliku start.py.

Nie wiem czy trochę tego nie pomieszałem, ale jeśli ktoś może mi to jakoś pokazać, będę wdzięczny. Jak dotąd zawsze pisałem program w jednym pliku teraz potrzebuje stworzyć swoje moduły.

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

o_O czy ty w ogóle rozumiesz co robisz? Bo chciałeś chyba zrobić sypialnia.Program(5,8)


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
N2
N2
  • Rejestracja:prawie 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:14
0

start.py

Kopiuj
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sypialnia

room = sypialnia.Program(5,8)
print(room)

wynik = room.add() 
print(wynik)

sypialnia.py

Kopiuj
#!/usr/bin/python3
# -*- coding: utf-8 -*-

class Program:
    def __init__(self,a,b):
        self.a = a
        self.b = b

    def __repr__(self):
        return f'Program(a={self.a}, b={self.b})'
    
    def add(self):
        return (self.a + self.b)

SH
  • Rejestracja:ponad 4 lata
  • Ostatnio:16 dni
  • Lokalizacja:Łódź
  • Postów:73
0

@nanoant20: Dziękuję za pomoc, zaczynam łapać o co chodzi :)

N2
Nie ma za co. Poczytaj o "Programowaniu obiektowym w Python'ie", o klasach i obiektach. W sieci jest dużo materiałów na ten temat, to pozwoli Ci na lepsze zrozumienie i swobodne posługiwanie się językiem.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.