gpt4 book ai didi

python - 是否可以在 Python 中将 2*func(x) 的结果重写为 func(x) + func(x)?

转载 作者:行者123 更新时间:2023-11-28 20:57:32 28 4
gpt4 key购买 nike

这个问题一直很有趣,尽管它不一定很整洁。我有以下代码:

import random

def d(m):
return random.randint(1, m)

print(3*d(6))

这将打印 d(6) 的返回值并将其乘以 3。我想要定义一组符号,这样我就可以设置 3*d(6) 将改为返回:d( 6) + d(6) + d(6)。或者,是否可以设置表达式“3d6”以在 XdY 的一般情况下返回我想要的内容?

这是否可以通过包装器/添加符号来解决,还是我必须更深入地更改解释器中的内容?

我正在尝试让程序更自然地适合游戏类型。在桌面游戏中,人们说“2d6”,意思是“掷两个 6 面骰子”。与 2*d(6) 相比,这具有不同的概率密度函数。

最佳答案

你不能有 3*d(6)产生 d(6)+d(6)+d(6) 的效果d(6)返回一个整数。如果您正在创建代表概率分布或类似东西的对象,您可以重载 __rmul__您想要的方式,但不是整数。

你不能有 3d6评估你想要的。 3d6不是有效的 Python token 。您将不得不更改并重新编译 Python 源代码,以生成您自己的具有更改语法的 Python 变体,这将是一项工作量很大但收效甚微的工作。

关于python - 是否可以在 Python 中将 2*func(x) 的结果重写为 func(x) + func(x)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52883959/

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