Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Drakaris en 12 Septiembre 2021, 23:36 pm



Título: Acceder a una variable de una clase de un modulo python desde el exterior
Publicado por: Drakaris en 12 Septiembre 2021, 23:36 pm
Código:
.
├── ClassAdmin
│   ├── ClassAdmin
│   │   ├── __init__.py
│   │   ├── settings.py
│   │   ├── static
│   │   │   ├── css
│   │   │   │   ├── fonts.css
│   │   │   │   ├── pageLogin.css
│   │   │   │   └── styles.css
│   │   │   ├── data.json
│   │   │   ├── fonts
│   │   │   │   └── Allura-Regular.ttf
│   │   │   ├── images
│   │   │   │   ├── ClassAdminLogo.png
│   │   │   │   └── wallpaper.png
│   │   │   └── js
│   │   ├── templates
│   │   │   ├── pageLogin.html
│   │   │   └── src
│   │   │       └── base.html
│   │   ├── urls.py
│   │   ├── views.py
│   │   └── wsgi.py
│   ├── ClassAdmin.sqlite3
│   └── manage.py
└── sources
    └── __init__.py

Buenas, tengo un modulo llamado sources que es una carpeta con el archivo __init__.py, en el propio archivo esta la siguiente clase:
Código
  1. class Environment:
  2.    def __init__(self):
  3.        self.directory = os.environ.get("CLASSADMIN")
  4.    def pathDB(self):
  5.        if platform.system() == "Windows":
  6.            return f"{self.directory}\\ClassAdmin\\ClassAdmin.sqlite3"
  7.        elif platform.system() == "Linux":
  8.            return f"{self.directory}/ClassAdmin/ClassAdmin.sqlite3"
  9.    def pathLog(self,name:str):
  10.        if platform.system() == "Windows":
  11.            return f"{self.directory}/{name}.log"
  12.        elif platform.system() == "Linux":
  13.            return f"/var/log/{name}.log"
  14.  
  15.  

Y desde el archivo settings.py haciendo el import quiero acceder a la variable directory que esta en el init de la clase Environment.
Código
  1. from sources import *
  2. STATIC_ROOT = f'{Environment().directory}/ClassAdmin/ClassAdmin/static'
  3.  
Pero esto me devuelve None
Citar
[Errno 2] No such file or directory: 'None/ClassAdmin/ClassAdmin/static/data.json'

Porque pasa esto? si al hacer una clase con una variable self en el init puedes acceder a ella, no entiendo.

Que esta ocurriendo?
Gracias