假设我正在开发的 RPG 有多个函数...
def name_of_function():
action
并希望在每个函数中实现 ax 类(见下文),而不必重写每个类。我将如何将该类创建为全局类。我不确定我是否使用了正确的术语,但请帮忙。这一直让我无法创建基于文本的 RPG 游戏。一个全局类的例子会很棒!
class axe:
attack = 5
weight = 6
description = "A lightweight battle axe."
level_required = 1
price = 10
最佳答案
您不能在 Python 中创建任何真正全局的东西——也就是说,任何模块无论如何都可以神奇地使用的东西。但一旦您了解了模块和导入的工作原理,这就无关紧要了。
通常,您创建类并将它们组织到模块中。然后将它们导入到任何需要它们的模块中,这会将类添加到模块的符号表中。
例如,您可以创建一个名为 weapons.py
的模块,并在其中创建一个 WeaponBase
类,然后是 Axe
和Broadsword
派生自 WeaponsBase
的类。然后,在任何需要使用武器的模块中,你将放置
import weapons
在文件的顶部。执行此操作后,weapons.Axe
返回 Axe
类,weapons.Broadsword
返回 Broadsword
类,并且很快。您还可以使用:
from weapons import Axe, Broadsword
将 Axe
和 Broadsword
添加到模块的符号表中,允许代码几乎完全按照您所说的去做。
你也可以使用
from weapons import *
但这通常不是一个好主意,原因有二。首先,无论您是否要使用它,它都会导入模块中的所有内容 - 例如 WeaponsBase
。其次,如果 weapons
中的函数与导入模块中的函数同名,您会遇到各种令人困惑的问题。
import
系统有很多微妙之处。例如,您必须小心确保模块不会尝试相互导入。最终您的项目变得足够大,以至于您不想将其所有模块都放在同一个目录中,并且您将不得不学习诸如 __init__.py
之类的东西。但您以后可以担心这一点。
关于python - 如何在 Python 中创建全局类(如果可能)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4000141/