在Gmail中,我有一堆带标签的邮件.
我想使用IMAP客户端来获取这些消息,但我不确定搜索咒语是什么.
c = imaplib.IMAP4_SSL('imap.gmail.com')
c.list()
('OK', [..., '(\\HasNoChildren) "/" "GM"', ...])
c.search(???)
Run Code Online (Sandbox Code Playgroud)
我没有找到很多这方面的例子.
我已经看到一些Python程序员相当一致地使用以下样式(我们称之为样式1):
import some_module
# Use some_module.some_identifier in various places.
Run Code Online (Sandbox Code Playgroud)
为了支持这种风格,你可以引用"明确胜于隐性"的格言.我见过其他程序员使用这种风格(风格2):
from some_module import some_identifier
# Use some_identifier in various places.
Run Code Online (Sandbox Code Playgroud)
我在样式2中看到的主要好处是可维护性 - 特别是对于duck typing理想我可能想要some_module替换some_other_module.我还觉得"可读性计数"格言的风格2胜.虽然我倾向于不同意,但人们总是认为在使用第一种风格时,搜索和替换是一个很好的选择.
附录:有人指出,你可以使用as从解决开关some_module以some_other_module在风格1.我忘了提,这也是常见的决定实现some_identifier您在目前的模块,这使得同等的创建some_module容器略显尴尬.
我正在使用一个可以在运行时启用/禁用报告的日志记录模块.电话通常类似于:
WARN(
"Danger Will Robinson! There are "
+ boost::lexical_cast<string>(minutes)
+ " minutes of oxygen left!"
);
Run Code Online (Sandbox Code Playgroud)
我正在使用WARN的内联函数,但我很好奇在幕后进行了多少优化 - 在整个程序中对参数的评估将是昂贵的.该WARN函数基本是这样的:
bool WARNINGS_ENABLED = false;
inline void WARN(const string &message) {
if (!WARNINGS_ENABLED) {
return;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
鉴于构造字符串参数没有副作用,编译器会优化它吗?要求(优化的一定水平-Ox在g++一段x)?
据我所知,datetime.timedelta由于效率原因,秒和微秒可能是单独表示的,但我只是写了这个简单的函数:
def to_seconds_float(timedelta):
"""Calculate floating point representation of combined
seconds/microseconds attributes in :param:`timedelta`.
:raise ValueError: If :param:`timedelta.days` is truthy.
>>> to_seconds_float(datetime.timedelta(seconds=1, milliseconds=500))
1.5
>>> too_big = datetime.timedelta(days=1, seconds=12)
>>> to_seconds_float(too_big) # doctest: +ELLIPSIS
Traceback (most recent call last):
...
ValueError: ('Must not have days', datetime.timedelta(1, 12))
"""
if timedelta.days:
raise ValueError('Must not have days', timedelta)
return timedelta.seconds + timedelta.microseconds / 1E6
Run Code Online (Sandbox Code Playgroud)
这对于将值传递给time.sleep或者很有用select.select.为什么这个datetime.timedelta界面不是这样的?我可能会错过一些角落案例.时间表示似乎有这么多非明显的角落案例......
我拒绝了几天准确地进行了一次合理的拍摄(我太懒了,实际上算不上数学ATM,所以这似乎是一个合理的妥协;-).
看起来如果你想获得一个映射的键,你就要求它们; 否则,给我整个映射(由一组键值对构成).这有历史原因吗?
我阅读了部分文档,并看到ConfigParser返回一个部分中选项的键/值对列表.我认为在一个部分中键不需要是唯一的,否则解析器只会返回一个映射.我围绕这个假设设计了我的配置文件模式,然后遗憾地意识到情况并非如此:
>>> from ConfigParser import ConfigParser
>>> from StringIO import StringIO
>>> fh = StringIO("""
... [Some Section]
... spam: eggs
... spam: ham
... """)
>>> parser = ConfigParser()
>>> parser.readfp(fh)
>>> print parser.items('Some Section')
[('spam', 'ham')]
Run Code Online (Sandbox Code Playgroud)
然后我回去找到了我应该阅读的文档部分:
节通常存储在内置字典中.可以将另一个字典类型传递给ConfigParser构造函数.例如,如果传递了对其键进行排序的字典类型,则将在回写时对这些部分进行排序,每个部分中的键也将进行排序.
保留我现有的配置文件方案(我现在非常喜欢;)我正在考虑传递一个类似于映射的对象,如上所述,它会累积值而不是破坏它们.是否有一种更简单的方法来防止我丢失的键/值崩溃?ConfigParser我应该编写一个ConfigParser自己的变体,而不是制作一个疯狂的适配器(如果实现更改可能会破坏)?
我觉得这可能是那些我只看到困难解决方案的"呃"时刻之一.
[编辑:]这是一个更精确的例子,说明我多次使用相同的密钥:
[Ignored Paths]
ignore-extension: .swp
ignore-filename: tags
ignore-directory: bin
Run Code Online (Sandbox Code Playgroud)
我不喜欢逗号分隔列表语法,因为当你将它缩放到很多值时,它很难看.例如,以逗号分隔的50个扩展名列表将不具有特别的可读性.
下面,我想改变CSS使得right-sibling在真正的中心containerDIV.(编辑:不使用绝对定位).
<html>
<head>
<style type='text/css'>
#container {
width: 500px;
}
#left-sibling {
float: left;
}
#right-sibling {
text-align: center;
}
</style>
</head>
<body>
<div id='container'>
<div id='left-sibling'>Spam</div>
<div id='right-sibling'>Eggs</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在目前的实现中,右兄弟的定心受左兄弟-您可以通过添加看到这个display: none给left-sibling的风格.
(注意:我想避免修改HTML结构,因为据我所知,CSS的重点是将标记结构与表示逻辑分离,这似乎不是一个非常疯狂的CSS请求处理.)
TIA.
我UnboundLocalError最近碰到了这个案子,这看起来很奇怪:
import pprint
def main():
if 'pprint' in globals(): print 'pprint is in globals()'
pprint.pprint('Spam')
from pprint import pprint
pprint('Eggs')
if __name__ == '__main__': main()
Run Code Online (Sandbox Code Playgroud)
哪个产生:
pprint is in globals()
Traceback (most recent call last):
File "weird.py", line 9, in <module>
if __name__ == '__main__': main()
File "weird.py", line 5, in main
pprint.pprint('Spam')
UnboundLocalError: local variable 'pprint' referenced before assignment
Run Code Online (Sandbox Code Playgroud)
pprint显然受到以下声明的约束globals,并将受到约束locals.有人可以解释为什么它不满意pprint在globals这里解决绑定?
编辑:由于回复良好,我可以用相关术语澄清我的问题:
在编译时,标识符pprint被标记为帧的本地.执行模型是否区分本地标识符绑定在框架内的哪个位置?它可以说,"引用全局绑定直到这个字节码指令,此时它已经反弹到本地绑定",或者执行模型没有考虑到这一点?
我受到了从Python修改Microsoft Outlook联系人的启发- 我正在尝试使用该win32com程序包编写一些令我讨厌的Outlook使用的脚本.我是一个被困在Windows用户小隔间的Linux用户,所以我对COM知之甚少.
我正在寻找有关COM是否允许反射的信息,win32com或者是否有关于Outlook 2007 COM对象的文档.欢迎您认为有用的任何其他指针!
我发现使用Python编程Outlook,但我使用的是Outlook 2007,因此我想了解更多有关Outlook 2000信息仍然适用的信息.
TIA!
我想知道是否有一个惯用的单行或标准分发包/函数,我可以用来比较两个Perl哈希只有内置,非祝福类型.哈希值不相同(它们没有等效的内存地址).
我想知道浅层哈希和嵌套集合的哈希的答案,但我知道浅哈希可能有一个更简单的解决方案.
TIA!
python ×7
arguments ×1
binding ×1
c++ ×1
center ×1
com ×1
comparison ×1
css ×1
datetime ×1
duck-typing ×1
gmail ×1
hash ×1
html ×1
identifier ×1
imap ×1
iteration ×1
mapping ×1
optimization ×1
outlook ×1
outlook-2007 ×1
perl ×1
scope ×1
timedelta ×1