如何在Python项目中使用其他类的属性

时间:2019-10-12 21:33:43

标签: python function attributes call

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页。

2 个答案:

答案 0 :(得分:0)

之所以能够访问其他变量和方法,是因为一开始要导入sys模块。

Python附带了许多可导入的模块,而sys是其中之一。 sys模块是一组函数,这些函数提供有关Python脚本如何与主机系统交互的重要信息。

sys模块具有有关以下信息:

  • 正在运行什么版本的Python
  • 正在执行脚本的Python可执行文件的路径
  • 用于执行脚本的命令行选项
  • 已设置的任何Python特定标志
  • 有关浮点值及其表示的信息。
  • 可以设置在每条python指令之后发生什么的功能。
  • 和一个完全退出Python解释器的函数。

有关详细信息:https://docs.python.org/3/library/sys.html

答案 1 :(得分:0)

def update_screen()仅是定义,Python不检查定义中的变量是否正确。当您执行此功能时,它将检查变量。除了ship中的update_screen()之外,您只是在def update_screen(..., ship)中作为参数获取的局部变量,因此您不会直接从其他文件访问ship.blitme()

我希望您将此代码导入其他文件,并在其他文件中使用类Ship的实例执行该代码,而该实例在其他文件中具有定义。然后Python将现有实例Ship分配给ship内的局部变量update_screen(..., ship),并将使用该实例中的方法blitme()

ai_settingsai_setting.bg_color也是如此。


flip()一样-您在此文件中导入pygame,并且它也导入pygame.display,因此您可以直接访问此文件中的pygame.display.flip()