';类型';函数的定义,在Python中?
什么Python内置返回';类型';函数的定义,在Python中?,python,types,Python,Types,什么Python内置返回 >类型(lambda:None) 有没有办法避免创建这个lambda函数,以获得一般的函数类型 有关更多详细信息,请参阅 谢谢 Chris.内置不是函数,而是:内置的函数或方法。这不是命名的全部意义吗 您可以通过以下方式获得: >>> type(len) <class 'builtin_function_or_method'> >类型(len) 您应该能够使用类型。FunctionType执行您想要的操作: Python 2.6.1 (
>类型(lambda:None)
有没有办法避免创建这个lambda函数,以获得一般的函数类型
有关更多详细信息,请参阅
谢谢
Chris.内置不是
函数,而是:内置的函数或方法。这不是命名的全部意义吗
您可以通过以下方式获得:
>>> type(len)
<class 'builtin_function_or_method'>
>类型(len)
您应该能够使用类型。FunctionType
执行您想要的操作:
Python 2.6.1 (r261:67515, Jul 7 2009, 23:51:51)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import types
>>> help(types.FunctionType)
Help on class function in module __builtin__:
class function(object)
| function(code, globals[, name[, argdefs[, closure]]])
|
| Create a function object from a code object and a dictionary.
| The optional name string overrides the name from the code object.
| The optional argdefs tuple specifies the default argument values.
| The optional closure tuple supplies the bindings for free variables.
Python 2.6.1(r261:675152009年7月7日23:51:51)
[GCC 4.2.1(苹果公司构建5646)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入类型
>>>帮助(类型.函数类型)
关于模块中类函数的帮助\uuuu内置\uuuuu:
类函数(对象)
|函数(代码、全局变量[、名称[、argdefs[、闭包]])
|
|从代码对象和字典创建函数对象。
|可选名称字符串覆盖代码对象中的名称。
|可选的argdefs元组指定默认参数值。
|可选的闭包元组为自由变量提供绑定。
但是一般来说,def
被认为是函数类型的默认构造函数。“Python内置返回什么
?”
功能
“是否有办法避免创建此lambda函数,以获得函数的一般类型?”
是的,类型。函数类型。
或仅键入(anyfunction)
若你们问如何去掉lambda(但重读后告诉我你们可能并没有),你们可以定义一个函数来代替lambda
因此,不是:
>>> somemethod(lambda x: x+x)
是吗
>>> def thefunction(x):
... return x+x
>>> somemethod(thefunction)
您应该摆脱Python中“类型”的概念。大多数时候,你不想检查某物的“类型”。显式检查类型很容易损坏,例如:
>>> s1 = 'hello'
>>> s2 = u'hello'
>>> type(s1) == type(s2)
False
您要做的是检查对象是否支持您试图对其执行的任何操作
如果要查看给定对象是否为函数,请执行以下操作:
>>> func = lambda x: x*2
>>> something_else = 'not callable'
>>> callable(func)
True
>>> callable(something_else)
False
或者尝试调用它,并捕获异常 为什么您需要知道函数的类型?本着duck类型的精神,您还可以在Python<3.0中使用hasattr(func,“func-code”)
,或者在Python>=3.0中使用hasattr(func,“\u-code”)
。但是,函数
类非常特殊,我认为按类型检查它是有意义的。另外,请注意,函数
类型和可调用项之间有区别,因为任何类的实例都可以调用。我无法确切理解OP的代码试图做什么来理解一个callable是否足以满足他的目的。我刚刚从您那里学到了callable()我肯定会越来越多地使用这个。谢谢这是我一直在寻找的“类型.函数类型”的答案。谢谢你的信息。
>>> func = lambda x: x*2
>>> something_else = 'not callable'
>>> callable(func)
True
>>> callable(something_else)
False