Вы столкнулись столкновения пространства имен, из-за вашей линии:
from pygame import *
Это загрязняет ваше глобальное пространство имен все, что вы можете импортировать из Pygame. Это облегчает ленивую жизнь - вам не нужно ссылаться на конкретное пространство имен, чтобы использовать функции pygame. Но это имеет и некоторые плохие последствия.
В этом случае вы импортировали «время» в качестве модуля в глобальное пространство имен. Когда вы импортируете, как вы делали из pygame, у него был подмодуль, называемый временем. pygame.time заменить ваш регулярный модуль времени.
Способ исправить это правильно использовать пространство модулей/имён.
Один из способов сделать это, является вместо использования from pygame import *
, вместо этого использовать:
import pygame
Но тогда вы должны поставить Pygame перед каждой ссылкой на функцию Pygame или модуля. Как правило, это хорошо, так что вы и все, кто читает ваш код, точно знают, какую функцию вы вызываете.
Вы можете сократить его немного, используя import ... as
:
import pygame as pg
Тогда вместо того, чтобы делать вещи, как pygame.time
, вы могли бы сделать pg.time
.
Если есть некоторые вещи, которые вы хотите специально поместить в глобальное пространство имен, вы можете сделать что-то вроде:
from pygame import foo
или
from pygame import time as pygt
Но если вы делаете from pygame import time
или from pygame import *
, время Pygame в перезапишет другой модуль времени.
У вас возник конфликт при выполнении 'from pygame import *' (проверьте http://stackoverflow.com/questions/9916878/importing-modules-in-python-best-practice) – fredtantini