我正在尝试从同一文件夹中的“ 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")
答案 0 :(得分:-1)
我过去也遇到过同样的问题,之所以遇到这个问题,是因为您和我一样,可能在您的代码文件之间创建了循环依赖关系。让我更好地解释一下:如果您创建一个game.py文件,该文件调用了screen_fin.py文件的某些函数或变量,并且还从game.py中调用了函数,那么您将有两个文件相互调用,这使得很多问题。当我更改项目中的文件导入时,所有这些问题都消失了。但是,如果需要,您可以在此处看到更多信息:https://stackabuse.com/python-circular-imports/
我希望这是XD的重点