Python. Передайте глобальную переменную (которая постоянно обновляется) в класс.Python

Программы на Python
Ответить
Anonymous
 Python. Передайте глобальную переменную (которая постоянно обновляется) в класс.

Сообщение Anonymous »

Я пытаюсь создать экземпляр класса, используя в качестве аргумента постоянно обновляемую глобальную переменную. Но происходит то, что класс (который работает в своем собственном потоке) не распознает изменение глобальной переменной, он рассматривает ее как значение, которое было при передаче. Я мог бы напрямую ссылаться на глобальную переменную внутри класса, но мне хотелось знать, есть ли способ передать ее при создании экземпляра, чтобы избежать повторения кодов — по одному для каждой глобальной переменной?
В приведенном ниже коде глобальная переменная обновляется, но не внутри класса:
` потоки импорта
время импорта
# Global variable
global_number = 0

class GlobalVarClass:
def __init__(self, global_var):
"""
Initializes the class with a global variable.
"""
self.global_var = global_var

def print_value(self):
"""
Prints the current value of the global variable.
"""
print(f"Current Global Variable Value: {self.global_var}")

def increment_global_variable():
"""
Increments the global variable by 1 every second.
"""
global global_number
while True:
time.sleep(1) # Wait for 1 second
global_number += 1 # Increment the global variable by 1
print(f"Incremented Global Variable: {global_number}")

def main():
# Create an instance of the class and pass the global variable as an argument
global_instance = GlobalVarClass(global_number)

# Start the thread to increment the global variable
increment_thread = threading.Thread(target=increment_global_variable, daemon=True)
increment_thread.start()

# Continuously print the current value of the global variable
while True:
global_instance.print_value()
time.sleep(2) # Print the value every 2 seconds to see the updates

if __name__ == "__main__":
main()`


Подробнее здесь: https://stackoverflow.com/questions/792 ... to-a-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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