gpt4 book ai didi

python - 模块可以有属性吗?

转载 作者:太空狗 更新时间:2023-10-29 22:05:55 25 4
gpt4 key购买 nike

<分区>

是否可以向模块添加属性和特殊方法?我想定义一个模块,这样导入它就像一个类实例,而主体就像一个类定义。本质上,这是为了避免像这样丑陋的语法:

import game
if game.Game().paused:
print("The game is paused")

例如游戏模块看起来像这样:

_Speed = 1

@property
def paused():
return _Speed == 0

以及使用它的文件:

import game
if game.paused:
print("The game is paused")

另外,是否可以定义特殊方法(如__call__)?

明确地说,我不区分类/实例方法,因为我将 game.Game 用作单例/borg类。

我已经使用@property 和定义__bool__ 进行了测试,但都没有达到我希望的效果。

编辑(关于我为什么要使用属性的信息):

我有一个属性 game.speed、一个函数 game.paused() 和一个函数 game.pause(bool)。本质上,我有一个临时变量用于在游戏暂停时存储游戏速度。有一个私有(private)速度变量,在游戏暂停时设置为零。我绝不希望用户看到速度为零,并且能够在游戏暂停时修改速度,以便在游戏恢复时使用新速度。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com