gpt4 book ai didi

python - 我可以创建一个将由非平凡语法创建的类吗?

转载 作者:太空狗 更新时间:2023-10-30 02:28:02 25 4
gpt4 key购买 nike

考虑例如四元数数学 ( https://en.wikipedia.org/wiki/Quaternion )。

显然我可以构建一个类来定义一个新的四元数

a = quaternion(1, 2, 3, 4)
print(a)
# 1 + 2i + 3j + 4k

然而,人们不禁注意到原生的复杂数据类型可以通过使用

以一种更好的方式定义
a = 1 + 2j
type(a)
# complex or <class 'complex'> depending if ipython or python

1 + 2j 语法以某种方式被捕获以创建内置类对象 complex(1,2)。

那么,我可以这样做吗?有没有一种方法可以捕获简单的直接语法,例如 a = 1 + 2i + 3j + 4k 并将其转换为我的 a = quartenion(1, 2, 3, 4) 的工作方式类似于内置 complex?

最佳答案

您可以定义单位四元数,定义加法和减法以处理简单数字,然后只需编写表达式即可。

# quaternion.py
...
i = quaternion(0, 1, 0, 0)
j = quaternion(0, 0, 1, 0)
k = quaternion(0, 0, 0, 1)

# main.py
from quaternion import i,j,k
a = 1 + 2*i + 3*j + 4*k

这不是你想要的语法,但它接近它并且具有相同的含义。

关于python - 我可以创建一个将由非平凡语法创建的类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38323894/

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