我正在创建一个大的.py文件,可以导入并用于求解数学公式。我想将公式存储在一个名为input1\u input2\u input3()的过程中:例如,公式距离=速度*时间称为dis\u spe\u tim()。你知道吗
目前的代码是:
def dis_spe_tim():
def distance(speed, time):
result = speed*time
unit = input("What unit are you measuring the distance in?")
print(resule,unit)
def speed():
print("speed")
我希望用户最好这样使用:
import equations #name of the .py file
from equations import *
dis_spe_tim.distance(1,2)
不幸的是,这是我第一次这样做,所以我完全不知道如何在过程内部调用过程并提供它的参数。你知道吗
简而言之:不能这样做。嵌套函数是它们在其中定义的函数的本地函数,只在外部函数执行期间存在(
def
是一个可执行语句,在运行时创建一个函数对象并将其绑定到封闭命名空间中的名称)。你知道吗规范的python解决方案是使用模块作为名称空间(python模块主要是名称空间),即每个“公式”都有一个不同的模块,并在模块的顶层定义函数:
然后将所有这些模块放在
equations
包中(主要是:包含模块和__init__.py
文件的文件夹)。然后你可以做:您可以在这里查看文档以了解有关模块和包的更多信息:https://docs.python.org/3/tutorial/modules.html#packages
还要注意的是
1/“star imports”(也称为“通配符导入”),即
from somemodule import *
,是highly discouraged,因为它们会使代码更难阅读和维护,并可能导致意外的(有时甚至很难发现)损坏。你知道吗2/您不应该将“域”代码(进行有效计算的代码)与UI代码(与用户通信的代码)混合使用,因此对
input()
、print()
等的任何调用都应该在“域”代码之外。这是使您的域代码可用于不同ui(命令行、基于文本的(诅咒等)、GUI、web等)的关键,但也非常简单,可以确保您的域代码易于隔离测试(单元测试…)。你知道吗相关问题 更多 >
编程相关推荐