为什么Python中的所有东西都是一个对象?根据我所读到的,包括函数在内的所有东西都是一个对象。它在其他语言中并不相同。因此,促使这种方法发生转变,将包括甚至函数在内的所有内容都视为对象。
答案 0 :(得分:-1)
作为对象的一切事物的力量是您可以为每个对象定义行为。例如,作为对象的函数为您提供了一种访问函数文档的简便方法。
print( function.__doc__ )
另一种方法是提供一个功能库 一个函数,并返回其有趣的属性。
import function_lib
print( function_lib.get_doc( function )
制作int,str等类意味着您可以扩展这些提供类型 以有趣的方式解决您的问题域。
答案 1 :(得分:-1)
为什么Python中的所有内容都是一个对象?
Python(与其他语言不同)是一种真正的Object Orient语言(又名OOP) 当一切都是一个对象时,搜索,操作或访问事物变得更容易。 (但一切都是以速度为代价的)
提示这种方法的转变,将包括甚至功能在内的所有内容都视为对象?
“必要性是发明之母”
答案 2 :(得分:-1)
在我看来,“一切都是对象”在Python中很棒。在这种语言中,您不会对您必须处理的对象做出反应,而是对它们如何进行交互做出反应。函数只是一个可以__call__
的对象,列表只是一个可以__iter__
的对象。但是为什么我们应该在非重叠组中划分数据。当我们调用它时,一个对象可以表现得像一个函数,但是当我们访问它时它也像一个数组。
这意味着你不认为你的“功能”就像“我想要一个整数数组并且我返回它的总和”但更多“我将尝试迭代某人给我的东西并尝试将它们加在一起,如果出现问题,我会通过raise
错误告诉来电者,他会讨厌改变他的行为“。
最有趣的例子是__add__
。当您尝试Object1 + Object2
之类的内容时,Python会向Object1
询问(很好地^^)尝试使用object2
(Object1.__add__(Object2))
添加自己。这里有两种情况: Oject1
知道如何将自己添加到Object2
并且一切正常,或者他引发了NotImplemented
错误,Python会要求Object2
将自己添加到Object1
只需使用这种机制,你可以教你的对象将自己添加到任何其他对象,你可以管理交换,...