【发布时间】:2011-04-05 17:56:43
【问题描述】:
我一直想知道为什么从模块中导入特定对象的语法是from module import x, y, z 而不是import x, y, z from module。我不是母语人士,但后者不是更正确/更自然吗?
那么,将 from 放在首位的原因是什么?仅仅是为了简化语法(需要更少的前瞻)?是不是试图让两种进口在视觉上更加明显?还是其中一种明显的方式“一开始并不明显,除非你是荷兰人”? ;)
【问题讨论】:
-
我仍在学习 Python,但恕我直言,以下内容似乎与该语言的其余部分更加一致:
import(module, x, y, z)。根本不需要from。 -
@FM:如果你不希望
import得到特殊的句法处理,你必须写import('module', 'x', 'y', 'z'),传递对象的名称,因为对象本身直到import之后才可用。 -
我见过的最好的导入语法是在 Haskell 中:
import module (a, b, c)。干净、清晰并使多个导入语句看起来一致且对齐(不幸的是,import qualified案例除外)。而且我不知道为什么 GvR 选择了那个丑陋的from ... import。 -
以介词开头的句子既不合语法也不常见。例如,“从梅德福出发,向南行驶 5 号州际公路”。这一切都取决于使句子解析更好的原因。对于包括这种情况在内的许多情况,在行动之前给出上下文更有意义。