我正在尝试创建一个脚本,其中有4个输入变量,它们之间可以有几种组合以生成输出。例如,我有:U,nu,Dh,Re。它们由方程Re = U * D / nu关联。我想要的是创建组,其中等式的右边是必选的,而左边的一个要根据数据输入进行计算。
现在我有这段代码正在工作,但是我不喜欢我发现将所有输入设为可选并使用if语句处理它的方式:
def get_Re (U, D, nu):
return (U*D/nu)
def get_nu (U, D, Re):
return (U*D/Re)
def get_U (D, Re, nu):
return (Re*nu/D)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('-U', type=float, help='Fluid Speed [m/s]')
parser.add_argument('-nu', type=float, help='Fluid kinematic viscosity [m^2/s]')
parser.add_argument('-Dh', type=float, help='Hydraulic diameter [m]')
parser.add_argument('-Re', type=float, help="Reynold's number")
args = parser.parse_args()
if args.U and args.Dh and args.nu:
Re = get_Re(args.U, args.Dh, args.nu)
elif args.Re:
Re = args.Re
if args.U and args.Dh and args.Re:
nu = get_nu(args.U, args.Dh, args.Re)
elif args.nu:
nu = args.nu
if args.Dh and args.Re and args.nu:
U = get_U(args.Dh, args.Re, args.nu)
elif args.U:
U = args.U