我用通用术语来表达我的例子,因为它可以解决问题,而无需深入了解我的具体问题细节.
假设您有一堆将字符串作为参数的方法.假设一个字符串是一个人的"名字"而另一个字符串是一个人的"姓氏".可能还有其他字符串,如"最喜欢的食物".
现在,在您的代码中,您将继续查找运行时错误,因为您正在混淆参数.您可以切换"名字"和"姓氏"的顺序,或在您应该使用另一个时使用一个.强类型语言的价值在于它会在构建时而不是运行时发现这些错误.
因此,一种可能的解决方案是从字符串派生类.
public class FirstName : String
{
}
public class LastName : String
{
}
Run Code Online (Sandbox Code Playgroud)
现在,如果您传递了错误类型的字符串,编译器会抱怨.以上是不可能的,因为String是密封的.另外,"using"语句不起作用(我认为),因为编译器在混合时不会抱怨.
using LastName = String;
Run Code Online (Sandbox Code Playgroud)
当然,我可以构建包装字符串然后编写强制转换方法的类,但这似乎比它的价值更麻烦.
我已经看到有关使用 argparse 库将字典和列表传递给 Python 的问题。这些示例都显示了我的 Python 代码的样子。但是没有人告诉我它们在命令行上的样子。我在哪里需要大括号、方括号和引号?
因此,如果我想要参数 --my_dict 和 --my_list 我将如何将它们指定为从命令行调用?
这是我想要完成的事情的本质:
Python foo.py --my_dict="{'Name': 'Zara', 'Class': 'First'}" --my_list="['a', 'b', 'c']"
Run Code Online (Sandbox Code Playgroud)