elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  llamar modulo dentro de una clase | Python3
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: llamar modulo dentro de una clase | Python3  (Leído 2,754 veces)
Drakaris

Desconectado Desconectado

Mensajes: 286


Todo lo que puedas imaginar, lo puedes crear.


Ver Perfil
llamar modulo dentro de una clase | Python3
« en: 12 Septiembre 2020, 19:49 pm »

Buenas. Tengo un problema....

Tengo una clase, donde cuya clase estoy llamando a la funcion OS_system(), importado del paquete ' init'
Código
  1. from init import *
  2. class notification:
  3.       # [CODE]
  4. def popup(self, title, type_title, content_text, type_image, Image=Image):
  5. try:
  6. main = Tk()
  7. ico = Image.open(OS_system().path_tkinter("SockServices.png"))
  8.                        # [...]
  9.  

init modulo:
Código
  1. class OS_system:
  2. def __init__(self):
  3. self.system = platform.system()
  4.        # [...]
  5. def path_tkinter(self,image):
  6. if self.system == "Linux":
  7. return "/etc/SockServices/mods/popup/images/"+str(image)
  8. elif self.system == "Windows":
  9. return "C:\Program Files\SockServices\mods\popup\images\\"+str(image)
  10.  
El problema es que me da el error
Citar
NameError: name 'OS_system' is not defined

El problema es que la clase OS_system del modulo init no es importada dentro de la clase notification. Como lo hago?[/code]


En línea

Lo increible, no es lo que ves, sino como es
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: llamar modulo dentro de una clase | Python3
« Respuesta #1 en: 13 Septiembre 2020, 16:23 pm »

hola:
        como no hay forma de saber que estás usando en tu código y esto le puede servir a otro, hago un ejemplo básico desde 0 y funcional:

módulo inicio:

Código
  1. import os
  2.  
  3. class Os_system:
  4.    def __init__(self):
  5.        self.system = os.name #me parece mejor que platform, salvo que sigas usando 2.7
  6.  
  7.    def path_tkinter(self,imagen):
  8.        if self.system == "nt":
  9.            return f"windows/{imagen}" #por una cuestión de fiaca cambié el camino
  10.        elif self.system == 'posix':
  11.            return f"linux/{imagen}"
  12.  
  13.  
  14.  

codigo principal:

Código
  1. from inicio import *
  2. import tkinter as tk
  3. from PIL import ImageTk, Image
  4. class uno:
  5.    def __init__(self):
  6.        ventana = tk.Tk()
  7.        imagen = Image.open(Os_system().path_tkinter("bola.png")) #la imagen más a mano que tenía
  8.        tkimagen = ImageTk.PhotoImage(imagen)
  9.        imagen= tk.Label(ventana,image=tkimagen)
  10.        imagen.pack()
  11.        ventana.mainloop()
  12.  
  13.  
  14. app=uno()        
  15.  

esto funciona.

Saludos.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Llamar a una función que está dentro de una clase? « 1 2 »
PHP
Servia 16 32,047 Último mensaje 29 Marzo 2009, 20:34 pm
por Nakp
Ayuda llamar a una clase y sus métodos dentro de otra clase (Android)
Java
LikeVodka 1 6,223 Último mensaje 19 Abril 2015, 11:22 am
por MNicolas
Duda con el modulo email de python3
Scripting
retr02332 1 2,165 Último mensaje 30 Noviembre 2019, 07:11 am
por engel lex
Duda con el modulo os de python3
Scripting
retr02332 1 2,391 Último mensaje 30 Noviembre 2019, 17:27 pm
por @XSStringManolo
¿Como mantener el valor de una variable estatica de una clase, cuya clase es ejecutada en distintos archivos? | Python3
Scripting
Drakaris 0 2,497 Último mensaje 6 Marzo 2022, 01:09 am
por Drakaris
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines