有没有办法在Python中确定对象是否具有某些属性?例如:
>>> a = SomeClass()
>>> a.someProperty = value
>>> a.property
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'property'
Run Code Online (Sandbox Code Playgroud)
在使用之前如何判断是否a
具有该属性property
?
虽然我喜欢把自己想象成一个相当称职的Python编码器,但我从来没有能够理解的语言的一个方面就是装饰器.
我知道它们是什么(表面上),我已经阅读了有关Stack Overflow的教程,示例和问题,我理解语法,可以编写自己的,偶尔使用@classmethod和@staticmethod,但我从来没有想过使用装饰器解决我自己的Python代码中的问题.我从来没有遇到过这样的问题,"嗯......这看起来像装饰工作!"
所以,我想知道你们是否可以提供一些你在自己的程序中使用装饰器的例子,希望我会有一个"A-ha!" 一刻,得到他们.
如果我想使用对象作为a的键Dictionary
,我需要覆盖哪些方法以使它们以特定方式进行比较?
假设我有一个具有属性的类:
class Foo {
public string Name { get; set; }
public int FooID { get; set; }
// elided
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个:
Dictionary<Foo, List<Stuff>>
Run Code Online (Sandbox Code Playgroud)
我希望Foo
具有相同对象的对象FooID
被视为同一组.我需要在Foo
课程中覆盖哪些方法?
总结一下:我想将Stuff
对象分类为按Foo
对象分组的列表.Stuff
对象将有一个FooID
将它们链接到他们的类别.
我正在考虑将我从.net 1.1继承的项目转换为.net 2.0.我担心的主要警告是它要我切换System.Web.Mail
到使用System.Net.Mail
.
我还没准备好使用过时的方式重新编写所有组件System.Web.Mail
,所以我很想知道是否有任何社区成员在.net 2.0下使用它时遇到问题?
你们在你选择的源代码管理系统中跟踪存储过程和数据库架构吗?
当您进行更改(添加表,更新存储过程,如何将更改导入源代码管理?
我们在工作中使用SQL Server,并且我已经开始使用darc进行版本控制,但我对一般策略以及任何方便的工具都很好奇.
编辑:哇,谢谢所有伟大的建议,伙计们!我希望我能选择多个"已接受的答案"!
我如何在SQL Server 2005中使用DateAdd函数将日期添加到日期
当你们对一个依赖app.config文件中的值的应用程序进行单元测试时?如何测试这些值是否正确读入以及程序如何对输入到配置文件中的错误值做出反应?
必须修改NUnit应用程序的配置文件是荒谬的,但我无法读取我要测试的app.config的值.
编辑:我想我应该澄清一下.我并不担心ConfigurationManager无法读取值,但我担心测试我的程序如何对读入的值作出反应.
嗨,我主要做C++,Objective-C编程.我发现Xcode加上一个自动完成/宏插件(完成字典)就足够了.
然而,所有人似乎都赞扬他们的纯文本编辑.我尝试了一下Textmate; 喜欢它的简单,但不喜欢它的文件/框架处理.
我在这里错过了什么吗?或者,Vim或Emacs是否具有与Xcode一样好的自动完成功能?
我怎样才能得到当前时间?(在JavaScript中)
不是你电脑的时间:
now = new Date;
now_string = addZero(now.getHours()) + ":" + addZero(now.getMinutes()) + ":" + addZero(now.getSeconds());
Run Code Online (Sandbox Code Playgroud)
但真正准确的世界时间?
我是否需要连接到服务器(很可能是,哪一个?我如何从中检索时间?)
我从google做的所有搜索都返回了(new Date).getHours()
.
编辑:
如果用户的计算机时间错误,我想避免显示错误的时间.
我正在编写一个应用程序,它必须从几个模块(.py文件)中获取元数据(作者,版本......等)并显示它们.用户选择脚本并执行脚本.(可以添加新脚本,并从目标文件夹中获取旧脚本,就像插件系统一样).
首先,我导入一个脚本,然后取出元数据,然后我去下一个.但我想取消导入所有其他模块,除了用户选择的模块.
我该如何实现呢?
我试过这些
1. del module
2. del sys.modules['module']
Run Code Online (Sandbox Code Playgroud)
后者不起作用.我试过#python并得到了一个解决方案,即取消导入模块并不好,但我想知道一种干净的方法来实现它.任何想法/建议都会有所帮助.
.net ×3
python ×3
sql-server ×2
.net-2.0 ×1
attributes ×1
database ×1
date ×1
dateadd ×1
decorator ×1
dictionary ×1
emacs ×1
generics ×1
javascript ×1
nunit ×1
objective-c ×1
sql ×1
t-sql ×1
textmate ×1
unit-testing ×1
vim ×1
xcode ×1