我不知道为什么使用__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__吗?
我无法运行此代码,因为我得到了异常:
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) 我有主文件夹:
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) 我在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#中使用imagemagick.net的例子,我找不到反对的东西.
所有我需要的是调整图像(.jpg)到新大小的图像(jpg,也),如果你知道如何添加水印将是很好的.
我从下载了imagemagick.net
我想在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) 我有一个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来说太大了.我确信有一些更简单的东西.
我收集了一些单词,我想从这个集合中创建限量为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)也不是好主意
有什么好主意吗?
我在使用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)有类似的东西吗?
我想重构以下递归方法:
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# ×5
python ×4
wpf ×2
casting ×1
directory ×1
enums ×1
if-statement ×1
imagemagick ×1
linq ×1
refactoring ×1
setter ×1
string ×1
xaml ×1