gpt4 book ai didi

python - 在Python中使用字符串作为函数的参数

转载 作者:行者123 更新时间:2023-11-30 22:19:07 24 4
gpt4 key购买 nike

我有一个无法用 Python 解决的问题。这个问题很难用语言表达,所以请看下面的例子。

phoneBook = {"Joe":12, "Jason":13, "Johnny":14}

for i in range(0, len(dir(phoneBook))):
if "__" not in dir(phoneBook)[i]:
print(help(phoneBook.dir(phonebook)[i]) + "\n\n")

我想要做的是打印每个不包含下划线的 dir() 条目的 help() 方法。 (即,调用 dir(phoneBook) 返回clear、copy、fromkeys、get、items 等...)。我希望 help() 方法能够打印 dir() 返回的每个值,如上面的 for 循环所示。但是,如果我使用上面所示的语法,则会出现语法错误。这个原理还有其他应用,这是我能立即想到的一个简单例子。

提前致谢。

最佳答案

这是一个工作版本:

phoneBook = {"Joe": 12, "Jason": 13, "Johnny": 14}

for method_name in dir(phoneBook):
if "__" not in method_name:
help(getattr(phoneBook, method_name))

更多详细信息:

  1. 您的代码没有语法错误。并非每个错误都是语法错误。
  2. 最后你写了phonebook而不是phoneBook .
  3. phoneBook.dir没有任何意义。
  4. help打印并返回 None ,就这么简单help(...)就足够了,而help(...) + '...'将会失败并且print(help(...))不需要。
  5. dir(phonebook)[i]出现两次,dir(phonebook)三次。使用变量!
  6. 使用更好的 for 循环!你很少需要for i in range(...) ,您通常可以直接迭代事物。
  7. 如果您想在每种方法的帮助之后打印空行或其他内容,只需 print('\n\n') .
  8. help(method)不起作用,因为例如如果 method'clear'那么这将是 help('clear')并且由于没有简单地调用 clear 的内置函数那没有给出任何东西。换句话说,您需要 phoneBook.clear 的帮助。 ,不仅仅是 clear通过它自己。动态获取phoneBook.<method name here>你使用getattr(phoneBook, method) .

关于python - 在Python中使用字符串作为函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49206388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com