我正在查看Python文档中的内置对象方法,我对文档感兴趣object.__repr__(self).这就是它所说的:
由repr()内置函数和字符串转换(反向引号)调用,以计算对象的"官方"字符串表示形式.如果可能的话,这应该看起来像一个有效的Python表达式,可用于重新创建具有相同值的对象(给定适当的环境).如果这不可能,则应返回<...一些有用的描述...>形式的字符串.返回值必须是字符串对象.如果一个类定义了repr()而不是str(),那么当需要该类的实例的"非正式"字符串表示时,也会使用repr().
这通常用于调试,因此表示信息丰富且明确是很重要的
对我来说最有趣的部分是......
如果可能的话,这应该看起来像一个有效的Python表达式,可用于重新创建具有相同值的对象
......但我不确定这意味着什么.它说它应该看起来像一个可以用来重新创建对象的表达式,但这是否意味着它应该只是你可以使用的表达式的一个例子,或者它应该是一个可以执行的实际表达式(eval)等..)重新创建对象?或者......为了纯粹的信息目的,它应该只是重新使用的实际表达式吗?
总的来说,我对这应该放在什么地方有点困惑.
我不确定如何真正地提出这个问题,而且我找不到答案,所以我希望有人可以帮助我.
我正在编写一个连接到远程主机并接收返回字节数据的Python应用程序,我使用Python的内置结构模块解压缩.我的问题在于字符串,因为它们包含多个字符编码.以下是此类字符串的示例:
"^ LT这是一个带有多个^ Jcharacter编码的^ Gstring"
使用特殊的转义字符标记不同的编码开始和结束的位置:
等等...我需要一种方法将这种字符串转换为Unicode,但我真的不知道该怎么做.我已经阅读了Python的编解码器和string.encode/decode,但我真的不是更聪明.我还应该提一下,我无法控制主机如何输出字符串.
我希望有人可以帮助我如何开始这个.
我有一个Canvas元素,包含在ScrollViewer中,我正在使用ScaleTransform进行缩放.但是,我希望能够在缩放操作完成后将查看器的滚动位置保持在画布的同一部分上.目前,当我缩放画布时,观看者的滚动位置保持原样,用户正在查看的位置丢失.
我还在学习WPF,而且我一直在向后退一步,但我无法找到一个很好的基于XAML的方法来实现我想要的.在这个问题上的任何帮助将不胜感激,并将有助于我的学习过程.
这是我正在使用的那种代码......
<Grid>
<ScrollViewer Name="TrackScrollViewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Canvas Width="2560" Height="2560" Name="TrackCanvas">
<Canvas.LayoutTransform>
<ScaleTransform ScaleX="{Binding ElementName=ZoomSlider, Path=Value}"
ScaleY="{Binding ElementName=ZoomSlider, Path=Value}"/>
</Canvas.LayoutTransform>
<!-- Some complex geometry describing a motor racing circuit -->
</Canvas>
</ScrollViewer>
<StackPanel Orientation="Horizontal" Margin="8" VerticalAlignment="Top" HorizontalAlignment="Left">
<Slider Name="ZoomSlider" Width="80" Minimum="0.1" Maximum="10" Value="1"/>
<TextBlock Margin="4,0,0,0" VerticalAlignment="Center" Text="{Binding ElementName=ZoomSlider, Path=Value, StringFormat=F1}"/>
</StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud) 我一直在探索Caliburn Micro MVVM框架只是为了感受它,但我遇到了一些问题.我有一个TextBox绑定到我的ViewModel上的字符串属性,我希望在TextBox失去焦点时更新属性.
通常我会通过在绑定上将UpdateSourceTrigger设置为LostFocus来实现这一点,但我没有看到任何方法在Caliburn中执行此操作,因为它已自动为我设置了属性绑定.目前,每次TextBox的内容更改时,都会更新该属性.
我的代码非常简单,例如这里是我的VM:
public class ShellViewModel : PropertyChangeBase
{
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
NotifyOfPropertyChange(() => Name);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的视图中,我有一个简单的TextBox.
<TextBox x:Name="Name" />
Run Code Online (Sandbox Code Playgroud)
如何更改它,以便只在TextBox失去焦点时更新Name属性,而不是每次属性更改?
我在listBox中有大量的项目,名为listBox1.我的顶部还有一个textBox(textBox1).我希望能够输入textBox并且listBox搜索它的项目并查找包含我正在键入内容的项目.
例如,假设listBox包含
"猫"
"狗"
"胡萝卜"
和"Brocolli"
如果我开始输入字母C,那么我希望它显示Cat和Carrot,当我输入它时它应该继续显示它们,但是当我添加一个r时它应该从列表中删除Cat.反正有没有这样做?