问题列表 - 第5431页

在Python中选择不同的switch-cases替换 - 字典或if-elif-else?

我最近阅读了建议不要在支持它的语言中使用switch-case语句的问题.就Python而言,我已经看到了许多交换机案例替换,例如:

  1. 使用字典(许多变体)
  2. 使用元组
  3. 使用函数装饰器(http://code.activestate.com/recipes/440499/)
  4. 使用多态(推荐的方法而不是类型检查对象)
  5. 使用if-elif-else梯形图
  6. 有人甚至推荐了访客模式(可能是外在的)

鉴于选择的种类繁多,我在确定如何处理特定代码时遇到了一些困难.我想学习选择其中一种方法的标准.另外,我很感谢在我遇到麻烦的具体情况下做什么的建议(对选择的解释).

这是具体问题:
(1)

def _setCurrentCurve(self, curve):
        if curve == "sine":
            self.currentCurve =  SineCurve(startAngle = 0, endAngle = 14,
            lineColor = (0.0, 0.0, 0.0), expansionFactor = 1,
            centerPos = (0.0, 0.0))
        elif curve == "quadratic":
            self.currentCurve = QuadraticCurve(lineColor = (0.0, 0.0, 0.0))
Run Code Online (Sandbox Code Playgroud)

响应于选择从菜单绘制曲线,该方法由qt-slot调用.一旦申请完成,上述方法将包含总共4-7条曲线.在这种情况下使用丢弃词典是否合理?由于最明显的方法是if-elif-else,我应该坚持下去吗?我也考虑在这里使用**kargs(有朋友的帮助)因为所有曲线类都使用**kargs ...

(2)
第二段代码是当用户改变曲线属性时调用的qt-slot.基本上,槽从gui(spinBox)获取数据并将其放入适当曲线类的实例变量中.在这种情况下,我再次有同样的问题 - 我应该使用dict吗?

这是前面提到的插槽 -

def propertyChanged(self, name, value):
    """A Qt slot, to react to changes of SineCurve's properties."""
    if name == "amplitude": …
Run Code Online (Sandbox Code Playgroud)

python switch-statement

18
推荐指数
2
解决办法
7826
查看次数

在生产模式下使用Derby或HSQL的经验

有没有人试过在生产环境中使用Derby或HSQLDB?任何好的,坏的或丑陋的经历?

derby hsqldb

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

247
推荐指数
8
解决办法
25万
查看次数

跨OS虚拟驱动器功能

寻找在线资源来实现类似于列出的产品中实现的虚拟驱动器功能 这里

解决方案应该是跨OS(win,pc,linux),最好使用一个运行良好的框架.目前,这个问题的答案是广泛分散的,没有明确的选择:

我发现目前的建议:

  1. 保险丝(不确定各种Windows端口的状态)
  2. 杜坎图书馆
  3. 自定义命名空间扩展(仅限Windows,各种 CodeProject 文章中的代码)
  4. 商业框架(窗口) - LogicNP,Eldos
  5. 的WebDav

请列出每个答案的一个建议,我会相应地更新问题.问题的目的是为这些问题创建最佳参考点......

似乎WebDav最容易实现跨操作系统,因此有关此的进一步信息将不胜感激.

language-agnostic cross-platform virtual-drive

11
推荐指数
2
解决办法
1629
查看次数

数值优化

我想知道哪种Integer或Float类型最快..
我认为字节比整数更快,因为它的范围更小.
有些人告诉我..在某些情况下,整数比一个字节快.

第二个问题:
GPU正在走向世界统治...
所以我问自己:Double可以比整数更快......因为FPU
所以专家在哪里?:)

double optimization computer-science integer

4
推荐指数
1
解决办法
384
查看次数

哪种列表/集合类型最适合在WCF数据协定中使用?

在定义WCF数据协定时,应该使用哪种类型的集合/列表?

  • 应该是ICollection <T>,IList <T>,T []还是......?
  • 我应该使用接口类型还是具体类型?
  • 有什么权衡需要考虑?

.net wcf datacontract

16
推荐指数
1
解决办法
7150
查看次数

发布模式下的应用程序失败

我的ASP.NET应用程序有问题.它已经开发了大约一年左右而没有禁用调试模式.我想测试它是否在没有调试的情况下工作,但它不是,但是,当我设置debug ="true"时,它工作正常.

当我第一次尝试打开应用程序时,它会给我"服务器不可用"错误.在事件日志中,我有两个错误:

  1. .NET Runtime 2.0错误 - 错误应用程序aspnet_wp.exe,版本2.0.50727.3082,邮票492b8702,错误模块kernel32.dll,版本5.1.2600.3119,邮票46239c44,调试?0,故障地址0x00012a5b.
  2. ASP.NET 2.0.50727.0 - 意外的进程结束aspnet_wp.exe(PID:4932)(它可能写得有点不同,它的翻译).

我的IIS版本是在Windows XP上运行的5.1.

我会很感激任何建议.

更新:调试模式的更改在web.config中进行

c# asp.net crash release

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

SortedList <K,V>上是否有下限功能?

是否有下限功能SortedList<K ,V>?该函数应返回等于或大于指定键的第一个元素.还有其他类支持这个吗?

伙计们 - 请再次阅读这个问题.如果它存在,我不需要返回键的函数.当没有确切的密钥匹配时,我对场景感兴趣.

我对O(log n)时间感兴趣.这意味着我没有foreach循环的问题,而是希望有一个有效的方法来做到这一点.

我对此做了一些测试.

Linq语句既不是编译器也不是运行时机器优化的,因此它们遍历所有集合元素并且速度慢O(n).根据Mehrdad Afshari的回答,这里是一个二进制搜索,它在Keys集合的O(log n)中工作:

public static int FindFirstIndexGreaterThanOrEqualTo<T>(
            this IList<T> sortedCollection, T key
        ) where T : IComparable<T> {
    int begin = 0;
    int end = sortedCollection.Count;
    while (end > begin) {
        int index = (begin + end) / 2;
        T el = sortedCollection[index];
        if (el.CompareTo(key) >= 0)
            end = index;
        else
            begin = index + 1;
    }
    return end;
}
Run Code Online (Sandbox Code Playgroud)

.net c# sortedlist

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

带自定义模板的STL迭代器

我有以下模板方法,

template <class T>
void Class::setData( vector<T> data )
{    
    vector<T>::iterator it;
}
Run Code Online (Sandbox Code Playgroud)

我得到以下编译错误(XCode/gcc)

错误:预期`;' 在'它'之前

我在这里发现了其他有类似问题的人(读下来看它是相同的,即使它是从一个不同的问题开始)但他们似乎已经通过更新Visual Studio解决了.这让我觉得它是一个编译器问题而且它应该编译,这是正确的吗?通过索引从0到大小的迭代工作,但它不是我更喜欢实现此功能的方式.还有另一种方法吗?谢谢

c++ xcode gcc stl

4
推荐指数
1
解决办法
3091
查看次数

你什么时候使用数组而不是矢量/字符串?

我是初学C++程序员,所以我学会了使用数组而不是向量(这似乎是做事情的一般方法,然后转向向量).

我注意到很多关于SO的答案建议使用向量而不是数组,而字符串则用于char数组.看来这是用C++编写代码的"正确"方法.

总而言之,它何时值得使用经典数组/ char*(如果有的话)?

c++ arrays string vector

11
推荐指数
3
解决办法
7268
查看次数