如何在 Python 项目中使用其他 class 的属性
how to use other class's attribute in a Python project
import sys
import pygame
def check_event():
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
def update_screen(ai_setting, screen, ship):
screen.fill(ai_setting.bg_color)
ship.blitme()
pygame.display.flip()
属性 bg_color
和方法 flip()
和 blitme()
来自同一目录中的另一个 .py
文件。
但我不明白这个 .py
文件如何在没有 import
的情况下使用和调用它们?
代码来自书籍 "Python Crash Course",第 248 页。
您能够访问其他变量和方法的原因是因为您在开始时导入了 sys
模块。
Python 有很多模块可以导入,sys 就是其中之一。 sys 模块是一组函数,可提供有关 Python 脚本如何与主机系统交互的重要信息。
sys 模块有以下信息:
- Python 是什么版本 运行
- 正在执行脚本的 Python 可执行文件的路径
- 用于执行脚本的命令行选项
- 已设置的任何 Python 个特定标志
- 有关浮点值及其表示的信息。
- 可以设置每个 python 指令后发生的事情的函数。
- 和一个干净地退出 Python 解释器的函数。
def update_screen()
只是定义,Python 不检查定义中的变量是否正确。当您执行此函数时,它将检查变量。除了 update_screen()
中的 ship
只是您在 def update_screen(..., ship)
中作为参数获取的局部变量,因此您不能直接从其他文件访问 ship.blitme()
。
我希望您将此代码导入其他文件,并在其他文件中使用您在其他文件中定义的 class Ship
实例执行它。然后 Python 将现有实例 Ship
分配给 update_screen(..., ship)
内的局部变量 ship
并且它将使用此实例中的方法 blitme()
。
ai_settings
和ai_setting.bg_color
也是一样。
至于 flip()
- 您在此文件中导入 pygame
,它会导入 pygame.display
,因此您可以直接访问此文件中的 pygame.display.flip()
。
import sys
import pygame
def check_event():
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
def update_screen(ai_setting, screen, ship):
screen.fill(ai_setting.bg_color)
ship.blitme()
pygame.display.flip()
属性 bg_color
和方法 flip()
和 blitme()
来自同一目录中的另一个 .py
文件。
但我不明白这个 .py
文件如何在没有 import
的情况下使用和调用它们?
代码来自书籍 "Python Crash Course",第 248 页。
您能够访问其他变量和方法的原因是因为您在开始时导入了 sys
模块。
Python 有很多模块可以导入,sys 就是其中之一。 sys 模块是一组函数,可提供有关 Python 脚本如何与主机系统交互的重要信息。
sys 模块有以下信息:
- Python 是什么版本 运行
- 正在执行脚本的 Python 可执行文件的路径
- 用于执行脚本的命令行选项
- 已设置的任何 Python 个特定标志
- 有关浮点值及其表示的信息。
- 可以设置每个 python 指令后发生的事情的函数。
- 和一个干净地退出 Python 解释器的函数。
def update_screen()
只是定义,Python 不检查定义中的变量是否正确。当您执行此函数时,它将检查变量。除了 update_screen()
中的 ship
只是您在 def update_screen(..., ship)
中作为参数获取的局部变量,因此您不能直接从其他文件访问 ship.blitme()
。
我希望您将此代码导入其他文件,并在其他文件中使用您在其他文件中定义的 class Ship
实例执行它。然后 Python 将现有实例 Ship
分配给 update_screen(..., ship)
内的局部变量 ship
并且它将使用此实例中的方法 blitme()
。
ai_settings
和ai_setting.bg_color
也是一样。
至于 flip()
- 您在此文件中导入 pygame
,它会导入 pygame.display
,因此您可以直接访问此文件中的 pygame.display.flip()
。