问题列表 - 第17994页

在Python中强制/转换为正确类型的最佳位置

我仍然是Python的新手,我正在尝试习惯它的动态类型.有时我有一个函数或类需要某个类型的参数,但是可以得到另一个类型的值,它可以强制它.例如,它可能期望a float而是接收int或decimal.或者它可能需要一个字符串,而是接收一个定义__str__特殊方法的对象.

将论证强制转换为正确的类型(及其原因)的最佳做法是什么?我是在函数/类中还是在调用者中执行此操作?如果在调用者中,我是否也在函数中检查它?例如.

备选方案1:

def myfunc(takes_float):
    myval = float(takes_float)

myfunc(5)
Run Code Online (Sandbox Code Playgroud)

备选方案2:

def myfunc(takes_float):
    myval = takes_float

myfunc(float(5))
Run Code Online (Sandbox Code Playgroud)

备选方案3:

def myfunc(takes_float):
    assert isinstance(takes_float, float)
    myval = takes_float

myfunc(float(5))
Run Code Online (Sandbox Code Playgroud)

我已经读这个答案这一次,他们说,在Python检查类型是"坏"的,但我不想把时间浪费在追踪非常简单的错误,这些错误会在静态类型被立即拾起编译器语言.

python dynamic-typing

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

WPF TreeView HierarchicalDataTemplate - 绑定到具有多个子集合的对象

我试图TreeView绑定我的集合,以便所有组显示嵌套组,每个组将显示条目.

我如何使用HierarchicalDataTemplateTreeView来处理子组和条目集合?

组显示子组和条目:

Example:
Group1
--Entry
--Entry
Group2
--Group4
----Group1
------Entry
------Entry
----Entry
----Entry
--Entry
--Entry
Group3
--Entry
--Entry
Run Code Online (Sandbox Code Playgroud)


对象:


namespace TaskManager.Domain
{
    public class Entry
    {
        public int Key { get; set; }
        public string Name { get; set; }
    }
}

namespace TaskManager.Domain
{
    public class Group
    {
        public int Key { get; set; }
        public string Name { get; set; }

        public IList<Group> SubGroups { get; set; }
        public IList<Entry> Entries …
Run Code Online (Sandbox Code Playgroud)

c# wpf treeview xaml hierarchicaldatatemplate

54
推荐指数
3
解决办法
8万
查看次数

是否可以克隆IEnumerable <T>实例,保存迭代状态的副本?

我想创建一个副本,IEnumerator<T>以便我可以从集合中的特定位置重新启动枚举过程.显然,对于实现的集合,这样做没有任何好处IList,因为我们可以记住感兴趣的索引.

使用yield语句和Linq函数的组合是否有一种聪明的方法来完成此任务?我找不到合适的Clone()方法来复制枚举器,并且希望避免使用Enumerable.Skip()将新的枚举器重新定位到所需的恢复点.

此外,我希望尽可能保持解决方案的通用性,而不必依赖任何具体集合中的状态.

.net c# linq ienumerable clone

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

在Javascript中使用Unescape HTML实体?

我有一些与XML-RPC后端通信的Javascript代码.XML-RPC返回表单的字符串:

<img src='myimage.jpg'>
Run Code Online (Sandbox Code Playgroud)

但是,当我使用Javascript将字符串插入HTML时,它们会逐字呈现.我没有看到图像,我真的看到了字符串:

<img src='myimage.jpg'>
Run Code Online (Sandbox Code Playgroud)

我的猜测是HTML正在通过XML-RPC通道进行转义.

我怎样才能在Javascript中取消字符串?我尝试了这个页面上的技术,但未成功:http://paulschreiber.com/blog/2008/09/20/javascript-how-to-unescape-html-entities/

诊断问题的其他方法有哪些?

html javascript xml-rpc escaping

147
推荐指数
6
解决办法
13万
查看次数

为什么要写这样的迭代器呢?

我正在阅读关于内部类的Java教程

http://java.sun.com/docs/books/tutorial/java/javaOO/innerclasses.html

它解释了在示例"InnerEvenIterator内部类,它类似于标准的Java迭代器".所以我认为迭代器在Java中很常见?

我来自C编程背景.我不明白为什么这样的简单循环

for(i=0;i <SIZE;i+2){
System.System.out.println(arrayOfInts[i]));
}
Run Code Online (Sandbox Code Playgroud)

用两种方法扩展到迭代器(内部类).这有什么意义?

public class DataStructure {
    //create an array
    private final static int SIZE = 15;
    private int[] arrayOfInts = new int[SIZE];

    public DataStructure() {
        //fill the array with ascending integer values
        for (int i = 0; i < SIZE; i++) {
            arrayOfInts[i] = i;
        }
    }

    public void printEven() {
        //print out values of even indices of the array
        InnerEvenIterator iterator = this.new InnerEvenIterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.getNext() + " ");
        } …
Run Code Online (Sandbox Code Playgroud)

java

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

如何通过正则表达式增加匹配的数字?

我在我的一个网络应用中添加了一个新字段,供访问者添加产品.推送"添加产品"克隆其中一个现有输入,并将其设置为空白值.

但是我需要更新名称.名称采用以下格式:

<input type="text" name="product[0][0][3][title]" value="my product" id="input-AbGHtQS3" maxlength="150" />
Run Code Online (Sandbox Code Playgroud)

我需要递增最后一个数字索引,即本例中的3.

我写了一个正则表达式来匹配相应的字符,但是如何增加最后一个数字呢?

这是我的正则表达式:

/^product\[\d+\]\[\d+\]\[(\d+)\]\[.+\]/
Run Code Online (Sandbox Code Playgroud)

我怎么能增加最后一个数字?

javascript regex

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

第41行中的'0'是什么意思?

#include <iostream>
#include <cctype> // isdigit
using namespace std;

// Global buffer
const int LINE_LENGTH = 128;
char line[LINE_LENGTH];
int lineIndex;

void getLine () {
// Get a line of characters.
// Install a newline character as sentinel.
   cin.getline (line, LINE_LENGTH);
   line[cin.gcount () - 1] = '\n';
   lineIndex = 0;
}

enum State {eI, eF, eM, eSTOP};

void parseNum (bool& v, int& n) {
   int sign;
   State state;
   char nextChar;
   v = true;
   state = eI;

   do {
      nextChar = …
Run Code Online (Sandbox Code Playgroud)

visual-c++

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

WPF - 在XAML中评估Lambda

我在WPF写一个应用程序.让我所有的转换器变得简单,让人厌烦.

我环顾四周找到了WPFix.这看起来不错,但近一年内没有任何发布,看起来已经废弃了.

有没有人用过这个?它稳定吗?有没有人对XAML中允许使用Lambdas的其他解决方案有任何建议(或者避免使用大量的转换器)?

wpf xaml add-in

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

关于python GIL的一个问题

python GIL的存在是否意味着在python多线程中,相同的操作与在单个线程中重复它没有那么不同?

例如,如果我需要上传两个文件,那么在两个线程中执行它们的优势是什么,而不是一个接一个地上传它们?

我尝试了两种方式的大数学运算.但他们似乎花了几乎相同的时间来完成.

这似乎对我来说不清楚.有人可以帮我吗?谢谢.

python multithreading gil

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

用于检测文件是否在不同运行之间发生更改的Python库?

假设我有一个程序A.我运行它,并从文件foo.txt开始执行一些操作.现在A终止了.

A的新运行.它检查文件foo.txt是否已更改.如果文件已更改,则A再次运行其操作,否则退出.

是否存在库函数/外部库?

当然,它可以用md5 +包含md5的文件/ db来实现.我想防止重新发明轮子.

python file

8
推荐指数
2
解决办法
7471
查看次数