Python:在函数名中使用空格?

时间:2011-10-04 17:25:39

标签: python function

我正在编写一个python脚本来调用函数。

通常称为函数:

def myCall():
    print "Hello World"

但我想将该功能命名/使用为:

def my Call():
    print "I did it!"

我知道世界将开始思考为什么程序员用这种方式命名函数。只需将“空间”替换为“得分不足”或其他内容!嗯......但这不是我希望脚本工作的方式。

有任何建议用“空格”调用该函数吗?

------------------------------------------- ADD -ON ----------------------------------------

好的伙计们!我将解释我的脚本是如何工作的。特别是为什么我在函数名中使用空格。这个页面有很多好奇心,因此我放置这个附加组件来解释我为什么这么做。

我希望这能帮助每个人理解我为什么这样做:)

高兴地欢呼!

E.g。

===============
Welcome Menu
===============
1. Option 1
2. Option 2
3. Option 3
4. Option 4

我有一个用户主菜单,主菜单会不断更新每个菜单,然后再显示上面的选项

array = ["Option 1", "Option 2", "Option 3", "Option 4"]

检查已完成,因为当缺少某些变量(在脚本前面声明)时,特定选项确认将不起作用。

E.g。

for x in range(a) 
    print "Menu Option

我将菜单放在循环中(意味着只打印一次),菜单中的数字计数与字符串选项分开,每当数组中有1个元素打印计数时,自动递增。 Option变量位于数组中。

用户将在选项中选择他/她想要的内容。假设用户选择“选项1”,它将进入数组(array = [“选项1”,“选项2”,“选项3”,“选项4”])以检查哪个位置。

记住阵列没有固定!它的变化取决于脚本前面的变量声明。

完成所有vaildation以防止错误,崩溃等!

最后,我写了一个函数(带空格)

在循环中,它将调用该函数(带空格)。该函数需要链接回数组才能更改。

------------------------------------------- ADD -ON ----------------------------------------

5 个答案:

答案 0 :(得分:49)

你需要以传统的方式打电话吗?

这是一个带空格的函数名(和标点!)

>>> def _func():
    print "YOOOO"


>>> globals()['Da func name!!1'] = _func

>>> globals()['Da func name!!1']()
YOOOO

答案 1 :(得分:5)

如果不修改Python解释器,则不能(至少不能使用示例语法)

空格用于分隔令牌,不仅用于Python,还用于英语(以及其他几种语言)。因此,即使您找到了这样做的方法,您的代码也将更不易读,因为您可能必须阅读整个短语以确定在任何给定行上使用的函数。

这类似于去除空间感;你必须阅读整个事情并花费更多时间精神上解析它只是为了知道代码说什么(更不用说它做了什么!)。

答案 2 :(得分:4)

在Python 3中,您可以使用包含符号但不包含标点符号的标识符。尝试几乎看不见的符号,例如中间点(U + 00B7)。

# coding: utf-8

def my·Call():
    print("Hello World")

my·Call()

答案 3 :(得分:1)

如果有任何安慰,Tcl编程语言强调“Everything is a string”,并且该字符串是任何 Unicode字符的序列。特别是,Tcl“proc”-s(与Python函数最接近的规范对应关系)可以用嵌入空格的字符串命名。

答案 4 :(得分:0)

我参加派对的时间已经很晚了,不过就在这里。我通常会尝试使用像dict这样的东西。但如果你真的想要一个功能,你可以尝试:

import test  # Name of the module

def hello():
    print('Hello World')

setattr(test, 'Hello World', hello)

# This can be in the calling module
getattr(test, 'Hello World')()