小编use*_*618的帖子

为什么在python中使用__setattr__?

我不知道为什么使用__setattr__简单的引用之类的x.a=1.

我理解这个例子:

class Rectangle:
    def __init__(self):
        self.width = 0
        self.height = 0


x=Rectangle()
x.width=20
x.__setattr__('height',30)
setattr(x,'width',99)
Run Code Online (Sandbox Code Playgroud)

但不明白为什么使用代码取决于字符串('高度').

你能解释一下我有什么好处__setattr__吗?

python setter

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

abstractmethod没有定义

我无法运行此代码,因为我得到了异常:

NameError: name 'abstractmethod' is not defined
File "C:\Tests\trunk\PythonTests\AbstractClasses.py", line 12, in <module>
  class MyIterable:
File "C:\Tests\trunk\PythonTests\AbstractClasses.py", line 15, in MyIterable
  @abstractmethod

from abc import ABCMeta

class Foo(object):
    def __getitem__(self, index):
        print '__get_item__ Foo'
    def __len__(self):
        print '__len__ Foo'
    def get_iterator(self):
        print 'get_iterator Foo'
        return iter(self)

class MyIterable:
    __metaclass__ = ABCMeta

    @abstractmethod
    def __iter__(self):
        while False:
            yield None

    def get_iterator(self):
        return self.__iter__()

    @classmethod
    def __subclasshook__(cls, C):
        if cls is MyIterable:
            if any("__iter__" in B.__dict__ for B in C.__mro__):
                print "I'm …
Run Code Online (Sandbox Code Playgroud)

python abstract-class

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

Directory.Move不起作用(文件已存在)

我有主文件夹:

c:\test
Run Code Online (Sandbox Code Playgroud)

我有2个文件夹:电影和照片.

照片有三个文件夹,文件结构相同:人物,动物和建筑物.我正在尝试这段代码:

Directory.Move(@"c:\test\Movies", @"c:\test\Test");
Run Code Online (Sandbox Code Playgroud)

我得到例外:

File already exists
Run Code Online (Sandbox Code Playgroud)

c# directory

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

在WPF Treeview中根据枚举绑定图标

我在treeview TextBox,我想转换我的枚举:

<TextBlock TextAlignment="Justify" VerticalAlignment="Center" Text="{Binding Path=AcceptationStatusGlobalFlag}" />

public enum AcceptationStatusGlobalFlag
    {
        NotReady = 0,
        Ready = 1,
        AcceptedByAdmin=2
    }
Run Code Online (Sandbox Code Playgroud)

到图标.将有3个图标,比如ready.jpg,notready.jpg和AcceptedByAdmin.jpg

国家和地区有泳池AcceptationStatusGlobalFlag,我想要显示此枚举/图标

            <TreeView Name="structureTree" SelectedItemChanged="structureTree_SelectedItemChanged" Grid.Row="0" Grid.Column="0" ItemsSource="{Binding}" Height="413" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Visible" Width="Auto" PreviewMouseRightButtonUp="structureTree_PreviewMouseRightButtonUp" FontFamily="Verdana" FontSize="12">
                <TreeView.Resources>
                    <HierarchicalDataTemplate DataType="{x:Type ServiceMy:Country}" 
                              ItemsSource="{Binding Path=ListOfRegions}">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock TextAlignment="Justify" VerticalAlignment="Center" Text="{Binding Path=Name}"/>
                <TextBlock TextAlignment="Justify" VerticalAlignment="Center" Text=" H:"/>
                <TextBlock TextAlignment="Justify" VerticalAlignment="Center" Text="{Binding Path=NumberOfHotels}"/>
                <TextBlock TextAlignment="Justify" VerticalAlignment="Center" Text=" "/>
                            <TextBlock TextAlignment="Justify" VerticalAlignment="Center" Text=" FG:"/>
                            <TextBlock TextAlignment="Justify" VerticalAlignment="Center" Text="{Binding Path=AcceptationStatusGlobalFlag}" />
                <!--<Button Name="BTNAddRegion" Height="20" Content="+" Click="BTNAddRegion_Click"></Button>-->
            </StackPanel> …
Run Code Online (Sandbox Code Playgroud)

c# wpf

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

如何在.net中使用imagemagick.net?

我正在寻找几乎一小时的c#中使用imagemagick.net的例子,我找不到反对的东西.

所有我需要的是调整图像(.jpg)到新大小的图像(jpg,也),如果你知道如何添加水印将是很好的.

我从下载了imagemagick.net

http://imagemagick.codeplex.com/

c# imagemagick image-processing

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

XAML中的网格内部网格

我想在parentGrid的第二列中有childGrid(在chilGrid中我想要有两列:第一列用于标签,第二列用于文本框)

我怎么能这样做?我尝试了以下代码:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Height="*"/>
        <ColumnDefinition Height="*"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.ColumnDefinitions>
    <Grid Grid.Column=1>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Height="*"/>
            <ColumnDefinition Height="*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
    </Grid>
</Grid>
Run Code Online (Sandbox Code Playgroud)

wpf xaml

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

在python中将枚举转换为int

我有一个enum国籍:

class Nationality:
        Poland='PL'
        Germany='DE'
        France='FR'
Run Code Online (Sandbox Code Playgroud)

如何以这种或类似的方式将此枚举转换为int:

position_of_enum = int(Nationality.Poland)  # here I want to get 0
Run Code Online (Sandbox Code Playgroud)

我知道如果我有代码,我可以这样做:

counter=0
for member in dir(Nationality):
    if getattr(Nationality, member) == code:
        lookFor = member
        counter += 1
return counter
Run Code Online (Sandbox Code Playgroud)

但我没有,这种方式对于python来说太大了.我确信有一些更简单的东西.

python enums

13
推荐指数
7
解决办法
2万
查看次数

带linq的子串?

我收集了一些单词,我想从这个集合中创建限量为5个字符的集合

输入:

Car
Collection
Limited
stackoverflow
Run Code Online (Sandbox Code Playgroud)

输出:

car
colle
limit
stack
Run Code Online (Sandbox Code Playgroud)

word.Substring(0,5)抛出异常(长度)

单词.Take(10)也不是好主意

有什么好主意吗?

c# linq string

12
推荐指数
2
解决办法
4万
查看次数

在python中安全投射

我在使用python进行转换时遇到问题.

在c#中,我可以通过关键字安全地投射,例如:

string word="15";
var x=word as int32// here I get 15

string word="fifteen";
var x=word as int32// here I get null
Run Code Online (Sandbox Code Playgroud)

python(3.2)有类似的东西吗?

python casting

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

根据类型和参数列表删除ifs

我想重构以下递归方法:

public static void Initialize(Control control, DocumentContainer container, ErrorProvider provider)
{
    if (control == null)
    {
        return;
    }

    var controlWithTextBase = control as ICustomControlWithText;
    if (controlWithTextBase != null)
    {
       controlWithTextBase.DocumentLoaded = true;
       controlWithTextBase.Initialize(container, provider);
    }

    var custom = control as CustomCheckbox;
    if (custom != null)
    {
        custom.DocumentLoaded = true;
        custom.Initialize(container);
    }

    foreach (Control subControl in control.Controls)
    {
        Initialize(subControl, container, provider);
    }
}


public interface ICustomControlWithText : ICustomControl
{
    void Initialize(DocumentContainer container, ErrorProvider provider);
    void InitializeValidations();

    string Text { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# refactoring if-statement

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