Problem z importem modułu z klasy

Problem z importem modułu z klasy
Mr Coin
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
0

Witam,
mam problem z importem modułu,

Kopiuj
class Name1:
    def __init__(self):
        pass
    
    def a(self):
        pass
    
    def b(self):
       return # obliczenia z modułu b

potrzebuję zaimportować moduł b do klasy Name2

Kopiuj
class Name2:
    def __init__(self):
        pass
    
    def a(self):
       import..
       code

import jest w module - wiem, ze to nie eleganckie ale obie klasy od siebie zależą i inaczej mam błąd cyrkulacji.

importuję Name1(self.root).b() - ogólnie kod z b mi się wywołuje ale przy okazji też otwiera mi się cała klasa Name1 (dokładnie cały widget z tkinter) a ja potrzebuę sam wynik z b, co robię nie tak? Proszę o pomoc, za co z góry dziękuję :D

edytowany 4x, ostatnio: Mr Coin
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:około 2 godziny
  • Postów:4935
2

Jak wygląda ten import, Name1(self.root).b()? Nie możesz, from <module_name> import name1?


Mr Coin
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
0
lion137 napisał(a):

Jak wygląda ten import, Name1(self.root).b()? Nie możesz, from <module_name> import name1?
def get_calc(self):
from GUI.module.gallery import Gallery

Mr Coin
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
0
lion137 napisał(a):

Jak wygląda ten import, Name1(self.root).b()? Nie możesz, from <module_name> import name1?

Robi mi się coś takiego a potrzebuję mieć samo pole tekstowe, i jeszcze na dodatek przesuwa mi się wszytko..

screenshot-20221006140006.png

lion137
  • Rejestracja:około 8 lat
  • Ostatnio:około 2 godziny
  • Postów:4935
0

Sorry, ale nie wiem o co Ci chodzi, z tego co podałeś, nie da się zreprodukować problemu.


Mr Coin
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
0
lion137 napisał(a):

Sorry, ale nie wiem o co Ci chodzi, z tego co podałeś, nie da się zreprodukować problemu.

Wiem, ale nie mogę podać kodu bo bym musiał całą pakę wrzucić. Mam tylko pytanie jak po prostu zaimportować jakiś konkrety wynik z jednej metody klasy do innej metody innej klasy w innym module? Chyba że to nie jest takie oczywiste i sam muszę powalczyć z całym kodem..

edytowany 2x, ostatnio: Mr Coin
ledi12
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:Wrocław
51

import jest w module - wiem, ze to nie eleganckie ale obie klasy od siebie zależą i inaczej mam błąd cyrkulacji.

Powtórzę się z poprzedniego wątku. Rozwiąż problem z cyrkulacją zamiast szukać drogi na skróty, czy jakiś dziwnych hotfixów.


Robię http response status cody w martwych ciągach
Mr Coin
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
0

Ok, dziękuję za wskazówkę. Powalczę z tym.

ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
2

@Mr Coin:

Nie ucz się importu w metodzie, choć Python dopuszcza. To jest specyficzny dziwoląg tego języka, owszem, czasem się to stosuje celowo (gdy moduł ma alternatywne implermentacje o tej samej funkcjonalności) , ale normalnym importem jest w nagłówku kodu, w pierwszych liniach

Masz brata bliżnkaka @progcet98 ? Tak samo tłuczecie głową w mur z tymi importami "dynamicznymi"


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
0
ledi12 napisał(a):

import jest w module - wiem, ze to nie eleganckie ale obie klasy od siebie zależą i inaczej mam błąd cyrkulacji.

Powtórzę się z poprzedniego wątku. Rozwiąż problem z cyrkulacją zamiast szukać drogi na skróty, czy jakiś dziwnych hotfixów.

Nie zdziwlbym się, jakby były podane realne klasy, i KoszykJabłek dziedziczył z Jabłka


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
_13th_Dragon
Widziałem na własne oczy jak krzesło dziedziczyło po sale zaś student po krześle
ZD
Ze połowa studentów dziedziczy po bucie to wiedziałem ... w sumie to implementuje paradygmaty obiektowe w stylu duck typing "głupi jak but"
ledi12
Standard u większości newbie, którzy "nauczyli" się dziedziczenia - Nagminne jego nadużywanie.
_13th_Dragon
@ledi masz na myśli student dziedziczący po krześle czy student dziedziczący po bucie? :D
ledi12
student dziedziczący po silnik w klasie mercedes :D
Mr Coin
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
0
ZrobieDobrze napisał(a):
ledi12 napisał(a):

import jest w module - wiem, ze to nie eleganckie ale obie klasy od siebie zależą i inaczej mam błąd cyrkulacji.

Powtórzę się z poprzedniego wątku. Rozwiąż problem z cyrkulacją zamiast szukać drogi na skróty, czy jakiś dziwnych hotfixów.

Nie zdziwlbym się, jakby były podane realne klasy, i KoszykJabłek dziedziczył z Jabłka

Udało mi się tylko zastanawiam się czy z takiej lamby da się wyciągnąć wartość z funkcji bo póki co dostaję obiekt?

Kopiuj
from GUI.module.gallery import Gallery

class GetHelp:

    def __init__(self, root=None):
        self.root = root

    def get_open_link(self):
        a = lambda: Gallery(self.root).get_test1()
        print(a)
        return a
   
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:5 dni
1
Mr Coin napisał(a):
Kopiuj
from GUI.module.gallery import Gallery

class GetHelp:

    def __init__(self, root=None):
        self.root = root

    def get_open_link(self):
        a = lambda: Gallery(self.root).get_test1()
        print(a)
        return a
   

Tworzysz nową galerię aby pobrać z niej jakieś dane?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Mr Coin
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
0
_13th_Dragon napisał(a):
Mr Coin napisał(a):
Kopiuj
from GUI.module.gallery import Gallery

class GetHelp:

    def __init__(self, root=None):
        self.root = root

    def get_open_link(self):
        a = lambda: Gallery(self.root).get_test1()
        print(a)
        return a
   

Tworzysz nową galerię aby pobrać z niej jakieś dane?

Tak, będę analizował obrazy - sieci neuronowe. Zmieniłem zawód i pracuję jako programista od miesiąca ;) ale jestem inż więc z sieciami nie będę miał chyba zbyt dużego problemu aby się tego próbować uczyć.

KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
4
Kopiuj
a = lambda: Gallery(self.root).get_test1()

Ale czemu tam jest lambda a nie zwykłe wywołanie? czyli:

Kopiuj
a = Gallery(self.root).get_test1()

wygląda jakbyś walił na ślepo, tak zwane programowanie przez permutacje


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 1x, ostatnio: KamilAdam
Mr Coin
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
0
KamilAdam napisał(a):
Kopiuj
a = lambda: Gallery(self.root).get_test1()

Ale czemu tam jest lambda a nie zwykłe wywołanie? czyli:

Kopiuj
a = Gallery(self.root).get_test1()

wygląda jakbyś walił na ślepo, tak zwane programowanie przez permutacje

Ponieważ kod dotyczy tkinter, jak wywołuje normalnie to mi się wyświetla widget którego nie chce, za pomocą lambdy mam wszytko ok za wyjątkiem tego że zamiast wartości wyświetla mi się obiekt.

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:5 dni
0
Mr Coin napisał(a):

Tak, będę analizował obrazy - sieci neuronowe. Zmieniłem zawód i pracuję jako programista od miesiąca ;) ale jestem inż więc z sieciami nie będę miał chyba zbyt dużego problemu aby się tego próbować uczyć.

Może przedstaw jakie byty musisz użyć, np:

  • Obraz: Image
  • Galeria: lista obrazów, pozwala dodawać/usuwać obrazy, potrafi wylosować próbkę testową.
  • Schemat: Schemat sieci neuronowej z parametrami.
  • Algorytm: tworzony na podstawie Schema

itd itp..


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Mr Coin
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
0
_13th_Dragon napisał(a):
Mr Coin napisał(a):

Tak, będę analizował obrazy - sieci neuronowe. Zmieniłem zawód i pracuję jako programista od miesiąca ;) ale jestem inż więc z sieciami nie będę miał chyba zbyt dużego problemu aby się tego próbować uczyć.

Może przedstaw jakie byty musisz użyć, np:

  • Obraz: Image
  • Galeria: lista obrazów, pozwala dodawać/usuwać obrazy, potrafi wylosować próbkę testową.
  • Schemat: Schemat sieci neuronowej z parametrami.
  • Algorytm: tworzony na podstawie Schema

itd itp..

Znalazłem rozwiązanie, jakby ktoś potrzebował to trzeba użyć self.root.withdraw(), bez lambda

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.