我需要建议。我正在写一个计算器;我已经掌握了它的基本功能,并最终转向使用它的处理功能。在这方面,我发现Python提供的标准数学函数库不令人满意。
虽然定义了更常用的函数,但一些较为模糊的函数缺乏适当的提及。这方面的例子包括弧双曲余切,弧双曲余割,双曲余割,割线等。虽然其中一些只是对所提供功能的操纵,但似乎更好的选择是提供我们的定义并将程序引用到它遇到了他们。
这就是我的问题所在。我应该在主脚本中定义这些函数,还是应该使用单独的文件?如果我是后者,我该如何引用单独的文件?我对Python比较陌生,所以如果我缺少常用技术或其他东西,请告诉我。提前谢谢。
答案 0 :(得分:5)
我应该在主脚本中定义这些函数,还是应该使用单独的文件?如果我是后者,我该如何引用单独的文件?我对Python比较陌生,所以如果我缺少常用技术或其他东西,请告诉我。提前谢谢。
import
语句是python的一个重要部分:
将您的功能放在单独的文件中,例如mymath.py
:
def foo(x):
# Code goes here
然后导入您的模块:
import mymath
print(mymath.foo(y))
答案 1 :(得分:3)
我会像你建议的那样制作一个小型数学实用程序模块。只需使用
创建advmath.py
即可
def csch(z):
"Hyperbolic cosecant"
return 1 / sinh(z)
def sinh(z):
"Hyperbolic sine"
...
然后您可以在主脚本中import使用此模块:
import advmath
您现在可以访问模块中定义的函数和变量:
advmath.csch(x)
答案 2 :(得分:1)
你应该得到包含许多这些功能的numpy和scipy库。
我应该在主脚本中定义这些函数,还是应该 使用单独的文件?
这取决于你的计算器有多复杂。但它可能应该放在一个单独的文件中。
如果我是后者,我该如何引用单独的文件?
使用导入。 import foo
会尝试加载文件foo.py
。然后,您可以访问foo中的函数foo.function_name
。您应该能够在本网站上找到很多关于使用它的问题。
答案 3 :(得分:1)
你应该花一些时间在python网站上关于modules的优秀教程。
总的来说,是的。如果您有要重用的组件,则最好将它们保存在单独的模块文件中。
示例:
#!/usr/bin/python
def fib(n): # write Fibonacci series up to n
a, b = 0, 1
while b < n:
print b,
a, b = b, a+b
if __name__ == "__main__":
print "testing fib(10)"
fib(10)
将该代码放在已知目录中名为fib.py
的单独文件中 - 例如您的个人bin文件夹。从该目录运行python交互式shell。
现在:
>>> import fib
>>> fib.fib(10)
1 1 2 3 5 8
使用此方法,您可以构建一个随时可用的个人函数库。
请注意以下代码:
if __name__ == "__main__":
print "testing fib(10)"
fib(10)
这允许您放置测试工具和模块的末尾,如果执行模块而不是库导入,则执行模块。