小编cau*_*ima的帖子

是否应该在类和__init__ docstrings中记录哪些内容?

我没有找到关于应该在类和__init__文档字符串中记录什么的最佳实践.有时我发现构造函数参数已经在docstring类中记录,有时会在__init__docstring 中描述.我更喜欢在类docstring中描述构造,因为这是您在创建新实例时调用的内容.但是应该在__init__docstring方法中记录什么呢?


编辑:

我知道google styleguidegoogle docstring样式示例,但两者都没有回答我的问题.文档字符串样式的例子确实说

__init__方法可以记录在类级别docstring中,也可以记录在__init__方法本身的docstring中.任何一种形式都是可以接受的,但这两种形式不应混合.选择一种约定来记录__init__方法并与之保持一致.

但是如果我选择将__init__函数的docstring 放入类级docstring中,那么__init__docstring 应该包含什么?

python docstring code-documentation

24
推荐指数
5
解决办法
5126
查看次数

从包含的usercontrol设置窗口内某些控件的样式

我有一个应用程序具有在某些窗口中使用的多个用户控件.其中一个用户控件定义此窗口中的所有其他用户控件是否应允许编辑,因此将IsEnabled属性设置False为所有CheckBoxes,ComboBoxes和Buttons.但是,TextBoxes应该允许复制它们的文本,因此不应该被禁用,而只能是只读的.

我试过遍历LogicalTree,但是一些自建的usercontrol没有任何属性来禁用它们,但是这个usercontrol中包含的控件只是按钮和文本框.这就是为什么我想申请一个风格多变的所有元素(CheckBox,ComboBox,ButtonTextBox),但它不会工作.

在usercontrol的Ressources部分中,我定义了一些样式:

<Style TargetType="Control" x:Key="disabledStyle">
    <Setter Property="IsEnabled" Value="False" />
</Style>
<Style TargetType="TextBox" x:Key="readOnlyStyle">
    <Setter Property="IsReadOnly" Value="True" />
</Style>
Run Code Online (Sandbox Code Playgroud)

在CodeBehind中,在检查条件后,我尝试了以下方法:

# windowOwner is the root window containing this usercontrol
for control in [Button, ComboBox, CheckBox]:
    if self.windowOwner.Resources.Contains(control):
        self.windowOwner.Resources.Remove(control)
    self.windowOwner.Resources.Add(control, self.Resources['disabledStyle'])

if self.windowOwner.Resources.Contains(TextBox):
    self.windowOwner.Resources.Remove(TextBox)
self.windowOwner.Resources.Add(TextBox, self.Resources['readOnlyStyle'])
Run Code Online (Sandbox Code Playgroud)

但什么都没发生.我究竟做错了什么?我应该采用不同的方式吗?

=编辑1 =============================================== ===================

我现在尝试了以下,XAML:

<Style x:Key="disabledStyle">
    <!--<Setter Property="Button.IsEnabled" Value="False" /> …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml user-controls ironpython

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

由于布局影响,打开WPF窗口很慢

我的wpf有问题.问题是我的窗口,它使用了一些auto*列中的列Grid,它打开很慢.我已经使用Visual Studio调试器来调查问题所在,并在布局部分找到它.消息是:

对XAML可视树进行了更改,该树需要计算所有受影响元素的大小和/或位置.

以下是调试器的屏幕截图:

调试信息

检测布局确切问题的最佳方法是什么?或者我可以遵循一些一般规则吗?

非常感谢,我之前没有遇到过wpf的这种行为,即使是大型的usercontrols/windows ...

编辑 我不使用任何转换动画来旋转控件.一般来说,它是一个非常平坦的窗口.作为附加信息,GridView在窗口中滚动s也非常慢.

c# wpf performance layout xaml

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

停止后WebAudio没有播放(0)

我正在写一些类似网络音频编辑器的东西,我认为我已接近完成基础知识.我可以播放和停止音频文件,但是当我尝试再次调用播放方法时,即使参数没有改变,它也无法工作.

我很高兴看到有人调查我的问题,因为当其他项目中的类似代码没有时,我无法理解为什么它不起作用.不幸的是我不能创建一个jsfiddle,因为我需要加载一个外部mp3文件,似乎我不允许这样做.但我粘贴的JavaScript 这里和相应的HTML文件在这里.

您只需要一个可以上传文件的服务器和一个mp3.或者你可以使用这个链接,但我最终会删除这些文件.

javascript web web-audio-api

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

使用Web Audio API扩展音频

对于即将推出的使用Web Audio API的项目,我希望能够放大一些音频的音量.

正如我在文档中所读到的,增益节点将输入信号乘以其增益值.文档说明该值在0to 的范围内1,因此放大似乎不适用于增益节点.但我怎么能这样做呢?

html5 google-chrome web-audio-api

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

WPF Datagrid基于值的行颜色

我想基于布尔值更改DataGrid的行颜色.我查看了/sf/ask/1300642871/并以类似的方式尝试了它(在本地定义样式而不是在usercontrol的ressources),但editable属性更改时行背景不会更改.我不知道什么是错的,并且很乐意尝试一些新的东西.

<DataGrid ItemsSource="{Binding ReportSampleExaminationList}" CanUserDeleteRows="False" PreviewKeyDown="deleteRow" AutoGenerateColumns="False" HorizontalAlignment="Stretch" 
            RowBackground="Wheat" AlternatingRowBackground="WhiteSmoke" VerticalGridLinesBrush="Transparent"  HorizontalGridLinesBrush="Gray">

    <DataGrid.CellStyle >
        <Style TargetType="DataGridCell">
            <Style.Triggers>
                <Trigger Property="IsSelected"
                    Value="True">
                    <Setter Property="Background"
                    Value="LightBlue" />
                    <Setter Property="Foreground"
                    Value="Black" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGrid.CellStyle>
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Editable}" Value="False">
                    <Setter Property="Background" Value="Red" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>

    <DataGrid.Columns>
        <DataGridCheckBoxColumn Header="Editable" Binding="{Binding Editable}"/>
        <DataGridTextColumn Header="Probe" Binding="{Binding SampleNumber}" IsReadOnly="True" />
    </DataGrid.Columns>

</DataGrid>
Run Code Online (Sandbox Code Playgroud)

wpf xaml datagrid

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

Haskell 对两个不同的值构造函数使用相同名称的方式是什么?

假设我想对经理和员工之间一对一商定的待办事项进行建模。待办事项可能必须由经理或员工来实现。假设我想处理有关员工的一些数据,因此我对员工进行建模,如下所示:

data Employee = Employee
  { id :: Int
  , name :: String
  }
Run Code Online (Sandbox Code Playgroud)

进一步说,我将像这样建模我的待办事项:

data Todo = Todo
  { id :: Int
  , text :: String
  , realizedBy :: RealizedBy
  }
Run Code Online (Sandbox Code Playgroud)

我发现RealizedBy像这样建模 -type 是最优雅的:

data RealizedBy = Manager | Employee
Run Code Online (Sandbox Code Playgroud)

当然,这是不会编译的,因为有Multiple declarations of `Employee'.

我想出的一个解决方案是不定义 -type RealizedBy,而是像这样建模:

data TodoContent = TodoContent
  { id :: Int
  , text :: String
  }

data Todo = ManagerTodo TodoContent | EmployeeTodo TodoContent
Run Code Online (Sandbox Code Playgroud)

对我来说,这似乎有点过度设计。对我来说,必须重复TodoContent并不是那么优雅。另外,我想不出比Employee类型或无参数构造函数(或任何所谓的名称)更好的名称来对数据进行建模。我无法摆脱这样的感觉:我可能会错过一些明显的东西,可以更优雅地解决这个问题。我是吗,或者这真的是 Haskell …

constructor haskell types

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