2012-05-10 54 views

回答

6

python中的变量和函数之间没有区别(都是python中的第一类对象)。所以如果没有真正运行代码并且测试callable(var)是真的,那几乎是不可能的。

而且总有一些情况下,这样的行为是令人困惑的:

class Dummy(object): 
    pass 
foo = Dummy() 
if False: 
    foo() 
foo.__call__ = lambda self: 'meow' 
foo.x = 'y' 
foo() 

你什么时候将突出foo的功能呢?直到__call__赋值之后才能调用它,但对同一对象使用不同的语法高亮显示会相当混乱。当然这个例子很愚蠢。但它很容易地显示出为什么你不可能在Python中做你想做的事情。使用继承和元类可以使它变得更加复杂。

+0

+1。好吧,但语法高亮的主要原因是代码中更好的方向。 naught101可能需要在定义中以及何时调用该函数时(即,在括号后面)强调函数名称。问题是,如果这是一个好主意*尿尿风*;) – pepr

+0

如果你是一个喜欢金色淋浴的perv然后是! ;) – ThiefMaster

+0

采取的点。就错误的问题而言,答案很好。我想知道是否值得用相同的颜色突出显示函数和变量,或者如果这或多或少会突出显示所有内容? – naught101