如何解决AttributeError:部分初始化的模块'juego'没有属性'VENTANA_VERTICAL'很可能是由于循环导入
我正在尝试从同一文件夹中的“ juego.py”文件访问变量和函数,但出现错误。当前文件名为“ pantalla_fin.py”
错误: 在game_over_y = juego.VENTANA_VERTICAL / 3的第5行,输入文件“ c:\ Users \ danie \ OneDrive \ Escritorio \PROGRAMACIÓN\ ArchivosPyhton \ Pong \ view \ pantalla_fin.py” AttributeError:部分初始化的模块'juego'没有属性'VENTANA_VERTICAL'(很可能是由于循环导入)
import juego
import pygame
# Coordinates depending on the message
game_over_y = juego.VENTANA_VERTICAL/3
pulsar_y = juego.VENTANA_VERTICAL/3+75
# Function that draws the text
def escribir_mensaje(tamaño,frase,y):
font = pygame.font.Font("C:/Users/danie/OneDrive/Escritorio/PROGRAMACIÓN/ArchivosPyhton/Pong/imagenes_y_fuentes/fuente_numeros.ttf",tamaño)
ancho = font.height(frase)
x = juego.VENTANA_HORIZONTAL/2 - ancho/2
mensaje = font.render(frase,True,(255,255,255))
juego.ventana.blit(mensaje,(x,y))
# Main function
def game_over(ganador):
running = True
while running:
juego.ventana.fill(juego.NEGRO)
if ganador == "score1":
escribir_mensaje(64,"You have won",game_over_y)
elif ganador == "score2":
escribir_mensaje(64,"Game Over",game_over_y)
escribir_mensaje(16,"Click to restart",pulsar_y)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button==1:
juego.main()
pygame.display.flip()
pygame.time.Clock().tick(juego.FPS)
pygame.quit()
game_over("score1")
解决方法
我过去也遇到过同样的问题,之所以遇到这个问题,是因为您和我一样,可能在您的代码文件之间创建了循环依赖关系。让我更好地解释一下:如果您创建一个game.py文件,该文件调用了screen_fin.py文件的某些函数或变量,并且还从game.py中调用了函数,那么您将有两个文件相互调用,这使得很多问题。当我更改项目中的文件导入时,所有这些问题都消失了。但是,如果需要,您可以在此处看到更多信息:https://stackabuse.com/python-circular-imports/
我希望这是XD的重点
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。