小编Dav*_*eli的帖子

我什么时候应该使用file.read()或file.readlines()?

我注意到如果我遍历我打开的文件,迭代它而不"读取"它会快得多.

l = open('file','r')
for line in l:
    pass (or code)
Run Code Online (Sandbox Code Playgroud)

比...快得多

l = open('file','r')
for line in l.read() / l.readlines():
    pass (or code)
Run Code Online (Sandbox Code Playgroud)

第二个循环将花费大约1.5倍的时间(我在完全相同的文件上使用timeit,结果是0.442对0.660),并且会得到相同的结果.

那么 - 我什么时候应该使用.read()或.readlines()?

因为我总是需要迭代我正在阅读的文件,并且在经过艰难的学习之后,.read()对大数据的缓慢感觉 - 我似乎无法想象再次使用它.

python io timeit

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

暂停/阻止复选框控件的动画

我有一个复选框替换类似开关的控件.

在此输入图像描述

在此输入图像描述

它很棒.唯一的问题是此复选框初始模式可以是true或false.对于false - 没问题,但是如果它是真的,那么当加载视图时,你会立即看到开关移动的动画.

我想防止这种情况.反正有没有这样做?

这是相关的XAML:

<CheckBox Style="{StaticResource MySwitch}"  IsChecked="{Binding ExplicitIncludeMode}" ></CheckBox>

<Style x:Key="MySwitch" TargetType="{x:Type CheckBox}">
    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
    <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type CheckBox}">
                <ControlTemplate.Resources>
                    <Storyboard x:Key="OnChecking">
                        <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="slider" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
                            <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="55"/>
                        </DoubleAnimationUsingKeyFrames>
                    </Storyboard>
                    <Storyboard x:Key="OnUnchecking">
                        <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="slider" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
                            <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
                        </DoubleAnimationUsingKeyFrames>
                        <ThicknessAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="slider" Storyboard.TargetProperty="(FrameworkElement.Margin)">
                            <SplineThicknessKeyFrame KeyTime="00:00:00.3000000" Value="1,1,1,1"/>
                        </ThicknessAnimationUsingKeyFrames>
                    </Storyboard>
                </ControlTemplate.Resources>

                <DockPanel x:Name="dockPanel">
                    <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" RecognizesAccessKey="True" VerticalAlignment="Center"/>
                    <Border BorderBrush="LightGray" BorderThickness="1" …
Run Code Online (Sandbox Code Playgroud)

c# wpf mvvm

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

PyCharm 的 anaconda 插件是什么?

PyCharm 发布了带有“Anaconda 插件”的新版本。我真的不知道这个插件是什么以及如何使用它?它与您选择 anaconda 环境/包管理器的常规 PyCharm 有何不同?

此外,插件主页链接已失效:

在此处输入图片说明

(我说的是社区版)

pycharm anaconda

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

如何处理MVVM(WPF)中的许多复选框?

我有一个扩展列表,每个扩展名都有自己的复选框,用户需要从中选择: 在此输入图像描述

最后,我需要选择所有扩展的List或ObservableCollection.

做这个非MVVM非常简单.我创建了Checked或Unchecked事件,并添加了发件人的内容.

视图:

<CheckBox Checked="ToggleButton_OnChecked" Unchecked="ToggleButton_OnUnchecked">exe</CheckBox>
Run Code Online (Sandbox Code Playgroud)

代码背后:

    private void ToggleButton_OnChecked(object sender, RoutedEventArgs e)
    {
        var ext = ((CheckBox) sender).Content.ToString();
        Model.FirstRun.ExcludeExt.Add(ext);
    }

    private void ToggleButton_OnUnchecked(object sender, RoutedEventArgs e)
    {
        var ext = ((CheckBox)sender).Content.ToString();
        Model.FirstRun.ExcludeExt.Remove(ext);
    }
Run Code Online (Sandbox Code Playgroud)

如果我想做这个MVVM风格,据我所知 - 我必须为每个复选框创建一个属性并将它们绑定到UI.这是很多工作.

有没有更简单的方法?

c# wpf checkbox mvvm

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

什么是带有脚本的 Html.ActionLink 的 Asp.Net Core TagHelper 等价物

我想在删除之前提示确认对话框。我在这里找到了这个很好用的答案

@Html.ActionLink(
          "Delete",
          "Delete",
          new { id = post.OriginalPost.ID },
          new { onclick = "return confirm('Are you sure you wish to delete this post?');" });
Run Code Online (Sandbox Code Playgroud)

但正如我在 Core 中的理解,应该避免使用 ActionLinks。那么是否有任何标签助手或不同的方法来做到这一点?

c# asp.net-core-mvc asp.net-core asp.net-core-tag-helpers

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

Windows10上的Python 3.5-无法安装cx_freeze-'cxfreeze-postinstall'不存在

我正在尝试在python上安装cx_freeze,它似乎似乎不起作用。我已经尝试通过命令行中的pip(python -m pip install cx_freeze)和通过pycharm社区添加软件包。

最初,它使臭名昭著的无法找到vcvarsall.bat-但我安装了带有所有c ++编译器的最新Visual Studio。

现在,它给出了另一个错误消息-cxfreeze-postinstall不存在:

在此处输入图片说明

请帮我!

c++ python

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

为什么Main在旋转新线程时会等待,但对于任务来说则不然

我想知道为什么在控制台应用程序中,如果我旋转一个新线程从Main运行,即使Main将到达终点它将等待,但是如果我启动一个新任务,它将退出而不是等待任务结束.

例如

static void Main(string[] args) 
{
    Thread t = new Thread(new ThreadStart(SomeMethod));
    t.Start();            
    // Main will wait, and app won't close until SomeMethod finishes
}
Run Code Online (Sandbox Code Playgroud)

static void Main(string[] args)
{
    Task.Run(() => SomeMethod());
    // Main will close / app shuts down without waiting for SomeMethod to finish
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading console-application task-parallel-library

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

C:为什么可以按值传递(给函数)结构体,而不是数组?

这背后有什么历史或逻辑原因吗?


解释:当您将数组传递给 C 中的函数时,您实际上只传递了一个指向数组的指针。但是,当您传递结构时,您可以传递结构的副本或指针。

//this:
int function(int array[10])
// is equivalent to this:
int function(int *array)
//and they both pass a pointer

//but this:
int function(struct tag name)
//passes a struct by value, where as this:
int function(struct tag *name)
//passes a pointer to it.
Run Code Online (Sandbox Code Playgroud)

为什么会有差异?

c arrays struct pass-by-value

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

根据现有函数中的一个免费参数创建一个可调用函数,其中python中包含多个参数

以下是matlab中的代码:

costFunc = @(p) nnCostFunction(p, input_layer_size, hidden_layer_size, ...
                               num_labels, X, y, lmbd);
Run Code Online (Sandbox Code Playgroud)

它采用函数nnCostFunction,为它提供除p以外的所有参数,并将其转换为依赖于p的可调用对象。

也就是说,您可以调用完整功能:

result = nnCostFunction(p, input_layer_size, hidden_layer_size,num_labels, X, y, lmbd)
Run Code Online (Sandbox Code Playgroud)

或调用新函数:

result = costFunction(p)
Run Code Online (Sandbox Code Playgroud)

有什么办法可以在Python中做类似的事情吗?

python

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

在方法上使用await Task.Factory.StartNew将立即返回

我正在运行以下代码(C#7.1控制台应用程序),我无法理解为什么行为上的差异.

如果我等待常规的异步方法调用或Task.Run - 它按预期工作(即应用程序不会立即返回).但是,如果我使用Task.Factory.StartNew - 它将立即返回,而不会实际运行代码.

奇怪的是 - 如果我使用StartNew但是在方法内部删除await,它将不会立即返回...

问题:立即返回:

static async Task Main(string[] args)
{
    await Task.Factory.StartNew(DisplayCurrentInfo);
}

static async Task DisplayCurrentInfo()
{
    await WaitAndApologize();
    Console.WriteLine($"The current time is {DateTime.Now.TimeOfDay:t}");
    Thread.Sleep(3000);
}
Run Code Online (Sandbox Code Playgroud)

即 - 我不会看到打印到控制台的任何内容,控制台已经关闭.

没问题:这不会立即返回:

static async Task Main(string[] args)
{
    await DisplayCurrentInfo(); // or await Task.Run(DisplayCurrentInfo);
}

static async Task DisplayCurrentInfo()
{
    await WaitAndApologize();
    Console.WriteLine($"The current time is {DateTime.Now.TimeOfDay:t}");
    Thread.Sleep(3000);
}
Run Code Online (Sandbox Code Playgroud)

奇怪:这也不会立即返回:

static async Task Main(string[] args)
{
    await Task.Factory.StartNew(DisplayCurrentInfo); 
}

static async Task DisplayCurrentInfo()
{ …
Run Code Online (Sandbox Code Playgroud)

c# console-application async-await c#-7.1

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