小编ill*_*ant的帖子

无限收益问题

这是我的简单代码

class Fibonacci:
    @staticmethod
    def series():
        fprev = 1
        fnext = 1
        yield fnext
        while True:
            yield fnext
            fprev,fnext = fnext,fprev+fnext

under10 = (i for i in Fibonacci.series() if i<10)
for i in under10 :
    print i
Run Code Online (Sandbox Code Playgroud)

这是绝对明显的,但是......为什么解释器正在执行块

while True:
                yield fnext
                fprev,fnext = fnext,fprev+fnext
Run Code Online (Sandbox Code Playgroud)

永远?我在生成器中指定,我只想要<10的元素

under10 = (i for i in Fibonacci.series() if i<10)
Run Code Online (Sandbox Code Playgroud)

恕我直言,这有点误解任何方法可以防止无限执行而不重写"系列"?

python generator

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

检查文件是否相等

在Python中检查文件是否相等的最优雅方法是什么?校验?字节比较?认为文件不会超过100-200 MB

python equality file

5
推荐指数
2
解决办法
7765
查看次数

在.NET4客户端配置文件中使用c#解码URL

如何在.NET 4 Client Profile中解码URL?HttpUtil无法从此配置文件访问...也许一些开源库?或者可能某种方式添加HttpUtil而不更改目标框架?

c# .net-client-profile

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

wpf xaml设计师bug

每次我们在我们的项目中打开一个*的.xaml文件 - 我们看到的工作设计者和很多消息"类型没有发现"组件未找到"等几个实验后,我发现了一个问题的根源:创建新的WPF应用程序,在项目根目录中创建一个文件夹,向文件夹添加一些值转换器,尝试在"MainWindow.xaml"上使用它

你可能会写这样的东西:

xmlns:Folder="clr-namespace:WpfApp.Folder"
Run Code Online (Sandbox Code Playgroud)

然后

   <Window.Resources>
        <Folder:SomeValueConverter x:Key="someKey"/>
    </Window.Resources>
Run Code Online (Sandbox Code Playgroud)

你懂...

而且,现在最有趣的事情!当你建立你的项目x86或"任何CPU" - 一切都会好起来的,设计师将可用,所有命名空间将被完全进口,但只是改变你的项目配置到x64 ...重建解决方案和开放式的设计图! ..你会感到惊讶......错误,找不到类型等等......在x64应用程序中如何使用VS xaml设计器?

Windows 7企业版x64,Visual Studio 2010旗舰版

wpf designer visual-studio-2010

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

从 XAML 设置 ViewModel 的属性

我有一些UserControl,它DataContext绑定到ViewModel,如何设置ViewModel的属性XAML?是否可以?

UPD:抱歉不太清楚,我试图得到这样的结果:UserControl 的 DataContext 绑定到 ViewModel,我需要将 ViewModel 的属性设置为某些内容(比方说,UserControl 的 Width 属性)。是否可以?

UPD2:这似乎是不可能的。我知道 TwoWay 绑定模式等,我想做的事情 - 将 ViewModel 的属性设置为 UserControl 的属性

这个例子应该很清楚了

<Set Property={Binding SomePropertyOnViewModel} 
     Value={Binding RelativeSource={RelativeSource Self}, 
                    Path=SomePropertyOnUserControl}>
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

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

.NET,获取用于保存struct实例的内存

可以像这样确定内存使用情况(根据Jon Skeet的博客):

public class Program
{
    private static void Main()
    {
        var before = GC.GetTotalMemory(true);

        var point = new Point(1, 0);

        var after = GC.GetTotalMemory(true);

        Console.WriteLine("Memory used: {0} bytes", after - before);
    }

    #region Nested type: Point

    private class Point
    {
        public int X;
        public int Y;

        public Point(int x, int y)
        {
            X = x;
            Y = y;
        }
    }

    #endregion
}
Run Code Online (Sandbox Code Playgroud)

它打印Memory used: 16 bytes(我正在运行x64机器).考虑我们将Point声明从类更改为struct.那么如何确定使用的内存?有可能吗?我无法找到任何有关在.NET中获取堆栈大小的信息

PS

是的,当更改为'struct'时,Point实例通常会存储在Stack(并非总是),而不是Heap.Sorry,因为它不会首次将其与问题一起发布.

PPS

这种情况根本没有实际用途(恕我直言),我觉得是否有可能获得Stack(短期存储)大小.我无法找到任何关于它的信息,所以问你,SO专家).

c#

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

CSV第一个单元格限制

如果我在第一行的第一个单元格中创建csv文件(我是从C#进行的),它包含文本" ID ",则MS Excel 2010无法打开它,它说,文件不是有效csv文件.我花了半个小时,才意识到问题与" ID "有关.在这种情况下最有趣的事情是,如果将" ID "移动到任何其他单元格,一切正常.

重现步骤:创建包含以下内容的文本文件:

ID,Name
1,Unnamed
Run Code Online (Sandbox Code Playgroud)

保存它csv.更改为.

这就是全部,MS Excel 2010会告诉你这个文件不是一个csv并且无法打开它!

我做错了什么?我用谷歌搜索了一些信息,但似乎,ID不是某种保留字.

正如我所提到的,我正在运行Win7Enterprisex64并使用MS Excel 2010.PS取决于您的文化设置,csv分隔符可能是,;(可能是其他一些字符)

c# csv excel

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

ARC +循环引用收集器与前沿GC(比如.NET 4.5 GC)

关于objective c ARC机制,有很多关于SO的问题.许多人都在询问是否ARC要更换GC等等.甚至还有人讨论ARCGCMac应用程序迁移到是否合理(如果在一些数据类型中不需要太多工作来处理复杂的引用等).

明显的缺点ARC是完全没有任何清理循环引用的机制(编辑:循环引用).这是关于内存泄漏的一个非常好的和简单的解释ARC ,Objective-C中的自动引用计数是什么样的泄漏不能阻止或最小化?

和苹果的优势有趣概述ARC了他们GC. http://lists.apple.com/archives/objc-language/2011/Jun/msg00013.html

我对如何GC工作以及它有什么样的问题有了很好的理解,但是从C#/.NET世界到objective c / Cocoa阅读的东西ARC我仍然不能得到一个简单的东西 - 为什么没有后台机制来清理ARC应用程序中的循环引用.

它不需要线程挂起,是吗?所以相对便宜.实施一个是一个问题吗?GC轻型版本扫描堆栈,寄存器,构建图形,查找循环引用并释放内存而不挂起应用程序线程,听起来很酷,不是吗?

它需要严格的计算还是其他资源?我很难想象如何在不构建所有对象图的情况下找到循环引用,但假设这个过程是背景和连续的,那么即使这样也应该没问题

.NET 4.5 GC(http://blogs.msdn.com/b/dotnet/archive/2012/07/20/the-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client -and-server-apps.aspx)在性能方面有了很大的改进,但在ARC系统中拥有循环引用收集器将成为第二个赢家?ARC系统发展的下一步是什么?如果有可能并且有时会发生ARC循环引用收集器,那么它可以完全替换GC,或者下一代GC(具有更好的性能)是否会消除ARC系统?

UPD:请不要发布关于weak引用的信息,我知道如何处理ARC中的循环引用,这很明显,问题是关于将循环引用收集器添加到现有ARC机制的可能性,因为它将像现代GC一样强大和通用是

c# garbage-collection objective-c automatic-ref-counting

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

在异步方法中捕获异常后的异常

现在我知道这是一个首先使用的黑客Marshal.GetExceptionCode(),但问题不在于它(Visual Studio调试器也检测到一个活动的异常)

private static async Task TestAsync()
{
    Log("TestAsync.Before");

    await HandleExceptionAsync();

    Log("TestAsync.After");
}

private static async Task HandleExceptionAsync()
{
    try
    {
        Log("HandleExceptionAsync.Try");
        await ThrowAsync();
    }
    catch (InvalidOperationException)
    {
        Log("HandleExceptionAsync.Catch");
    }

    Log("HandleExceptionAsync.AfterCatch");
}

private static async Task ThrowAsync()
{
    await Task.Delay(1000);
    throw new InvalidOperationException("Delayed exception");
}

private static void Log(string step)
{
    Console.WriteLine($"{step}: {Marshal.GetExceptionCode()}");
}
Run Code Online (Sandbox Code Playgroud)

产量

TestAsync.Before: 0
HandleExceptionAsync.Try: 0
Exception thrown: 'System.InvalidOperationException' in Interactive.dll
Exception thrown: 'System.InvalidOperationException' in System.Private.CoreLib.ni.dll
HandleExceptionAsync.Catch: -532462766
HandleExceptionAsync.AfterCatch: -532462766
TestAsync.After: -532462766
The thread 9292 …
Run Code Online (Sandbox Code Playgroud)

c# clr async-await

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

HDF5:存储NumPy数据

当我使用NumPy时,我以原生格式*.npy存储了它的数据.它非常快,给了我一些好处,比如这个

  • 我可以从C代码中读取*.npy作为简单的二进制数据(我的意思是*.npy与C结构是二进制兼容的)

现在我正在处理HDF5(PyTables此刻).正如我在教程中看到的,他们使用NumPy序列化程序来存储NumPy数据,所以我可以从简单的*.npy文件中读取C中的这些数据?

HDF5的numpy是否与C结构兼容?

UPD:

我从hdf5读取matlab客户端,但是不想从C++读取hdf5因为从*.npy读取二进制数据的速度要快一些,所以我真的需要从C++读取hdf5(二进制兼容性)所以我是已经使用两种方式传输数据 - *.npy(从C++读取为字节,从本地Python读取)和hdf5(从Matlab访问)如果可能的话,想要使用唯一的方法 - hdf5,但要做到这一点,我有找到一种方法使hdf5二进制兼容C++结构,请帮助,如果有一些方法来关闭hdf5中的压缩或其他什么来使hdf5二进制兼容C++结构 - 告诉我在哪里可以阅读它...

c python numpy hdf5 pytables

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