是否可以将所有import pygame
import sys
length = 1200
width = 800
screen = pygame.display.set_mode((length, width))
screen_rect = screen.get_rect()
ball = pygame.image.load('ball.bmp')
ball_rect = ball.get_rect()
ball_rect.y = ball_rect.width
ball_rect.x = screen_rect.centerx
while True:
screen.fill((255, 255, 103))
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
ball_rect.y += 15
screen.blit(ball, ball_rect)
pygame.display.flip()
个模块自动提供到import pygame
import sys
length = 1200
width = 800
screen = pygame.display.set_mode((length, width))
screen_rect = screen.get_rect()
screen.fill((255, 255, 103))
ball = pygame.image.load('ball.bmp')
ball_rect = ball.get_rect()
ball_rect.y = ball_rect.width
ball_rect.x = screen_rect.centerx
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
ball_rect.y += 15
screen.blit(ball, ball_rect)
pygame.display.flip()
中? (即,无需导入它们,主应用程序的工作方式相同)
到目前为止,我必须确保将所有全局模块插入到我的通话的@Global
列表中:
TestModule
答案 0 :(得分:1)
全局模块始终必须导入一次,其提供程序才能全局可用。这对于测试和主应用程序都是适用的,请参见docs。
全局模块最多只能注册一次, 根或核心模块。之后,
CatsService
提供者将是 普遍存在,尽管不会导入CatsModule
。
因此,无法导入它们。您可以通过创建导入所有全局模块的CommonsModule
使其变得更容易。然后,您可以导入CommonsModule
而不是AppModule
和测试中的每个模块。
但是请注意,具有很多全局依赖项是一种代码味道。另外,在单元测试中,您通常希望独立于任何其他依赖项来测试类。如果导入全局模块,则将针对实际的提供程序进行测试。
将一切都全球化是一个不明智的决定。全局模块 可用于减少所需样板的数量。的 导入数组仍然是制作模块API的最佳方法 透明的。