Как реализовать глобальный общий ресурс в рамках класса [дубликат] ⇐ Python

Программы на Python
Anonymous
Как реализовать глобальный общий ресурс в рамках класса [дубликат]

Сообщение Anonymous »

Этот вопрос не о разнице между переменными класса и экземпляра.
Я хочу спроектировать свою программу таким образом, чтобы мой основной класс предоставлял модулям глобальные ресурсы для их использования. но на самом деле ему не нужно управлять ими самому. Модули будут оркестровать сами. Я хочу, чтобы эти модули имели доступ к этим общим ресурсам без необходимости явно передавать им ресурс.
Простой пример: в одном из моих классов я хочу иметь общий ресурс (в в этом случае self.shared.

Код: Выделить всё

# main.py
from sub import Item

class Main():
def __init__(self) -> None:
self.shared = []
self.item1 = Item('item 1', 'car')
self.item2 = Item('item 2', 'dog')
В подмодуле у меня определен класс Item

Код: Выделить всё

# sub.py
class Item():
def __init__(self, name, type) -> None:
# global shared
self.name = name
self.type = type
shared.append(self.name)
Когда создается экземпляр Item, я хочу, чтобы он мог добавлять свое имя к чему-то вроде self.shared в Main, но я не хочу передавать ресурс элементу. Я хочу, чтобы он мог получить глобальный доступ к ресурсу внутри класса. Как я могу это сделать?
Python 3.12

Подробнее здесь: https://stackoverflow.com/questions/790 ... of-a-class

Вернуться в «Python»