0
4

4 回答 4

2

如果你真的想只在使用时定义它们,为什么不让它完全明确和明显,以便阅读和更改?

if   trigger == '1':
    x = int(start)

elif trigger == '2':
    x = int(s1)

elif trigger == '3':
    x = int(s2)

elif trigger == '4':
    x = int(start)
    y = int(s1)

elif trigger == '5':
    x = int(s1)
    y = int(s2)
于 2012-10-11T09:42:52.293 回答
1

为什么不在你的 if 中再添加一个条件。

这是编写option 2. 我认为您可以遵循:-

if trigger in ('1', '4'): // You can better use `in` to check for more values
    x = int(start)

    if trigger == '4': 
        y = int(s1)

elif trigger in ('2', '5'):  
    x = int(s1)

    if trigger == '5': 
        y = int(s2)            

elif trigger == '3':
    x = int(s2)
于 2012-10-11T09:38:56.100 回答
1

类似于KV 图中的优化,其中X考虑或不考虑 ed 字段取决于它是否在优化中有用(参见 7 段显示与 BCD 值,其中值 10..15 未定义),我倾向于保留它尽可能简单并分配值,即使它们以后不使用。

于 2012-10-11T09:45:19.807 回答
0

如果所有s1, s2etc 将始终存在并且是有效整数,则选项 1 很好。

但是,它确实使您的代码不必要地依赖于您不使用的值的格式。有时这很好。但是,如果 egs1和朋友来自在命令行上传递的选项或输入到输入文件中的选项,您的用户将不喜欢您因为ValueError未定义这些值而抛出 a,从而迫使他们在无用的参数中传递无意义的整数。

所以真的,答案是这一切都取决于上下文!很难对这类问题给出一个一般性的答案。

于 2012-10-12T08:55:43.070 回答