有没有办法在 python 数学中将角度模式设置为degrees?
你知道在python中,三角函数默认是radians模式
from math import sin, radians
print(sin(radians(30)))
当我使用 degrees 工作时,继续输入
radians(...)
似乎是多余的。 from math import sin, radians
def sin2(degrees):
return sin(radians(degrees))
## or
sin2 = lambda degrees: sin(radians(degrees))
print(sin2(30))
像这样定义函数似乎很好,
但是,有谁知道这样做的更好方法吗?也许在数学中设置模式?
math
中的纯设置,据我所知没有。但是,我们可以包装它们的三角函数以接受以度为单位的角度。
import math
def trig_wrapper(func):
def inner(*args, **kwargs):
args = [math.radians(arg) if isinstance(arg, (int, float)) else arg for arg in args]
return func(*args, **kwargs)
return inner
for func_name in ['sin', 'cos', 'tan']:
setattr(math, func_name, trig_wrapper(getattr(math, func_name)))
print(math.sin(90))
print(math.cos(0))
个人不推荐,更喜欢定义新功能