【问题标题】:python is it possible to import a library inline?python是否可以内联导入库?
【发布时间】:2021-12-02 16:59:43
【问题描述】:

我正在尝试写一个单行,但它需要随机库。

import random
print(random.choice(["Red team","Blue team"]))

有没有正确的语法可以说像

print(__import__(random).choice(["Red team","Blue team"]))

with open('random') as r: print(r.choice(["Red team","Blue team"])))

【问题讨论】:

  • 虽然单行代码很有用,但必须牢记禅宗,代码也必须易于理解; (在我看来)这个概念不是。从这个角度来看,我会心甘情愿地说“不,没有一个正确的语法来完成这个”。坚持标准的导入约定。
  • 虽然我同意可读性很重要,并且在几乎所有情况下都应该避免这种情况,但如果你真的想要你可以use a semi-colon to separate statements:import random; print(random.choice(["Red team", "Blue team"]))。 (请注意,那里没有换行符。您看到的任何内容都是 SO 评论呈现的产物。)random 之后仍会导入。这不像上下文管理器。
  • 谢谢!!!!!!我同意可读性的论点。我没有意识到你可以做到这一点。我这里不设模式,只是发送一行sn-p人们可以在解释器中使用,作为一个与我们的主流产品关系不大的实用程序

标签: python import


【解决方案1】:

尽管不鼓励使用,importlib.import_module 是您正在寻找的功能。

import importlib
importlib.import_module("random").choice(["Red team","Blue team"])

【讨论】:

  • 我认为这不是 OP 所要求的
  • 那么,您建议使用import importlib 而不是import random,以便使用它并导入随机数?
  • 我同意@Chris。如果 importlib 是标准 python 的一部分,这正是我想要的,所以它在技术上并没有错,但不幸的是,这让彼得付钱给保罗,因为你必须添加 import 语句才能让 importlib 使它仍然是两行
猜你喜欢
  • 1970-01-01
  • 2017-04-04
  • 2021-06-30
  • 2020-05-06
  • 1970-01-01
  • 2013-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多