[英]How to change the boolean value of C to the boolean value of python on mac
[英]Change parameter to a boolean value in python
我試圖使用 python 在 pygame 中創建一個后退按鈕,但我的參數(條件)沒有設置為 false,我該怎么做? 這是我的代碼:
def back(condition): #condition - any boolean variable in my script
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
if 5 + 125 > mouse[0] > 5 and 5 + 125 > mouse[1] > 5:
gameDisplay.blit(backBtn, (5, 5))
if click[0] == 1:
if condition:
condition = False
else:
gameDisplay.blit(backBtn_hover, (5, 5))
如果您有任何答案,請回答。
謝謝::D
由於condition
是不可變類型,因此對其的任何更改僅在 function 內部可見。
在調用 function 時,您需要將其歸還並重新分配。
def back(condition): #condition - any boolean variable in my script
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
if 5 + 125 > mouse[0] > 5 and 5 + 125 > mouse[1] > 5:
gameDisplay.blit(backBtn, (5, 5))
if click[0] == 1:
if condition:
condition = False
else:
gameDisplay.blit(backBtn_hover, (5, 5))
return condition
...
condition = back(condition)
通常不建議將其設為全局變量,因此我不建議這樣做。
你期望這會發生嗎?
condition = True
back(condition)
print(condition) # False
這不是 Python 的工作方式。 您不能更改傳遞給函數的變量。 這樣的事情會奏效。
container = { 'condition': True }
back(container)
print(container['condition']) # False
因為在這種情況下,您不會更改變量,而是更改其內容。 但無論如何,這是糟糕的代碼。 通常你會做這樣的事情:
condition = True
condition = back(condition)
print(condition) # False
當然你需要在你的 function 中添加一個 return 語句。
您的答案可能是由於您的變量范圍,下面提供的三個示例有望引導您找到解決方案:
情況一
condition = True
def back(condition):
condition = False
print(f"{condition=}")
def main():
local_condition = back(condition)
global_condition = condition
print(f"{local_condition=}\n{global_condition=}")
if __name__ == '__main__':
main()
結果:
condition=False
local_condition=None
global_condition=True
情況 2 在返回函數中添加了返回
condition = True
def back(condition):
condition = False
print(f"{condition=}")
return condition
def main():
local_condition = back(condition)
global_condition = condition
print(f"{local_condition=}\n{global_condition=}")
if __name__ == '__main__':
main()
結果 2:
condition=False
local_condition=False
global_condition=True
情景三重新定義全球
condition = True
def back(condition):
condition = False
print(f"{condition=}")
return condition
def main():
global condition
condition = back(condition)
global_condition = condition
print(f"{condition=}\n{global_condition=}")
if __name__ == '__main__':
main()
結果 3:
condition=False
condition=False
global_condition=False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.