小编Chu*_*ckZ的帖子

字符串或其他密封类的强类型

我用通用术语来表达我的例子,因为它可以解决问题,而无需深入了解我的具体问题细节.

假设您有一堆将字符串作为参数的方法.假设一个字符串是一个人的"名字"而另一个字符串是一个人的"姓氏".可能还有其他字符串,如"最喜欢的食物".

现在,在您的代码中,您将继续查找运行时错误,因为您正在混淆参数.您可以切换"名字"和"姓氏"的顺序,或在您应该使用另一个时使用一个.强类型语言的价值在于它会在构建时而不是运行时发现这些错误.

因此,一种可能的解决方案是从字符串派生类.

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)

当然,我可以构建包装字符串然后编写强制转换方法的类,但这似乎比它的价值更麻烦.

c# string inheritance strong-typing

8
推荐指数
1
解决办法
1349
查看次数

Python argparse 通过命令行传递列表或字典

我已经看到有关使用 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)

python argparse

2
推荐指数
1
解决办法
2700
查看次数

标签 统计

argparse ×1

c# ×1

inheritance ×1

python ×1

string ×1

strong-typing ×1