【问题标题】:Building a String to be treated as a parameterized arguments for Function in Python在 Python 中构建要被视为函数的参数化参数的字符串
【发布时间】:2017-10-17 19:33:00
【问题描述】:

我正在尝试使用 PyGmail API,默认情况下它是这样工作的

s = g.inbox().mail(unread=True, sender='someone@gmail.com')
s[0].fetch()
print s[0].subject

所以现在,我想在某些条件下构建整个括号内的术语,所以我希望基本上能够做这样的事情:

f = "unread=True, sender='someone@gmail.com'"
s = g.inbox().mail(f.decode('string_escape'))
s[0].fetch()
print s[0].subject

但这不起作用,因为 f 变量仍被视为字符串,尽管使用了字符串转义解码。

我错过了什么?

【问题讨论】:

  • 为什么不能将f 构建为字典?
  • 您是否希望根据条件修改字符串?我认为你的问题过于复杂了

标签: python python-2.7 gmail-api


【解决方案1】:

f 形成一个字符串会让你的生活变得比它需要的更艰难,并为错误引入许多额外的可能性。

构建一个关键字字典并以通常的方式传递它们(使用**

keywords = {}
if something:
    keywords['unread'] = True
else:
    ... 
if somethingelse:
    keywords['sender'] = 'someone@gmail.com'
else:
    ... 

s = g.inbox().mail(**keywords)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2013-06-11
    • 2011-05-25
    • 1970-01-01
    相关资源
    最近更新 更多