嗯,这可能是一个奇怪的问题,我知道。但是搜索谷歌的python和大括号只能给出一种答案。
我想要的是低级别的东西,可能不是非常pythonic。有没有一种明确的方法来编写一个使用的函数:
>>>my_function arg1, arg2
而不是
>>>my_function(arg1, arg2)
我搜索一种让函数像旧版本一样工作的方法(在Python< 3.0中),你不需要使用括号。如果这不是那么简单,有没有办法看到“打印”的代码?
答案 0 :(得分:2)
您可以在Ruby中执行此类操作,但不能在Python中执行。 Python重视干净的语言和明确而明显的结构。
>>>进口这个 蒂姆·彼得斯的Python之禅
美丽胜过丑陋 明确胜过隐含。
简单比复杂更好 复杂比复杂更好 扁平比嵌套好。
稀疏比密集更好 可读性很重要 特殊情况不足以打破规则 虽然实用性超过了纯度 错误绝不应该默默无闻 除非明确沉默。
面对模棱两可,拒绝猜测的诱惑 应该有一个 - 最好只有一个 - 明显的方式来做到这一点 虽然这种方式起初可能并不明显,除非你是荷兰人 现在总比没有好。
虽然从来没有比现在更好*。* 如果实施很难解释,那是个坏主意 如果实施很容易解释,那可能是个好主意 命名空间是一个很棒的主意 - 让我们做更多的事情吧!
答案 1 :(得分:0)
对括号的要求在于Python解释器,而不在print
方法(或任何其他方法)本身的代码中。
(正如eph在评论中指出的那样,print
是一种陈述而非方法。)
答案 2 :(得分:0)
正如您已经被告知的那样,Python 2.x中的print
不是一个函数,而是一个语句,如if
或for
。这是一个“一等”的公民,有自己特殊的语法。您不能创建任何语句,并且所有函数都必须使用括号(在Python 2.x和3.x中)。
答案 3 :(得分:0)
没有。函数调用需要括号和两个直接连续的标识符(不包括保留字)是语法错误。这在语法中是一成不变的,不会改变。你可以支持这一点的唯一方法是制作你自己的语言实现,至少是一个语言的前端 - 这可能比它的价值更麻烦,并且需要一些重要的学习(除非你当然不是解析专家) )。如果您想尝试使用它,请参阅有关材料的编译器构造的大量堆栈溢出问题。
答案 4 :(得分:0)
你想做什么?如果您试图将此代码嵌入到另一个程序(非python)或以某种方式从解释器调用,您可以使用sys.argv
替代吗?以下是sys.argv如何运作的示例。