2014-01-15 3 views
0
def OnClick1(self,event): 
    song='maid.mp3' 
    aplayer(song, play1 , 1, 0) 

play1 - глобальная переменная, которая модифицируется в другом модуле. Но значение play1 по-прежнему является начальным, которое составляет 0. Как отформатировать переменную play1?Изменение глобальной переменной в Python

+0

Защиту SETVAL (я, событие): \t глобальный t0, t4 \t State1 = ул (self.rb1.GetValue()) \t печать State1 State2 = ул (self.rb2.GetValue()) \t печать State2 \t state3 = ул (self.rb3.GetValue()) \t печати state3 \t state4 = ул (self.rb4.GetValue()) \t печати state4 \t если State1 == "True": \t \t t0 = "audio2.mp3" \t если State2 == "True": \t \t t0 = "audio1.mp3" \t если state3 == "True": \t \t t4 = "audio2.mp3" \t если state4 == "True": \t \t t4 = "audio1.mp3" Опять проблема с глобальной переменной. Он говорит, что t0 и t4 не определены. Пожалуйста, помогите – user3131595

ответ

2

Возможно, вы ошибаетесь, но в Python глобальные переменные могут быть прочитаны, но не установлены, по умолчанию. Если вы хотите изменить глобальную переменную, которую нужно сначала объявить его как глобальный, то вы можете установить его:

play1 = 1 
def some_function(): 
    global play1 
    play1 = #your value here, which will change the global value 

Если проблема только, что другой модуль не имеет доступа к глобальной переменной (которая выиграла «т), вы можете попробовать крепление переменного в __builtin__ модуля, так что вы можете получить доступ или изменить его из любого модуля, просто делая:

import __builtin__ 
__builtin__.play1 = #new value 

Вот именно - теперь он должен быть кросс-модуль глобальным переменным.

+0

Да, я уже объявил это глобальным – user3131595

+0

Не могли бы вы уточнить, в чем проблема. Где в вашем коде вы модифицируете 'play1'? Не могли бы вы предоставить более полную версию своего кода? –

+0

получил ответ. Я сделал это наоборот. – user3131595

Смежные вопросы