【发布时间】:2016-10-28 17:47:39
【问题描述】:
我提前道歉,这是一个非常愚蠢的问题。只是出于好奇,(例如)function(a)和a.function()之间有什么区别?感谢您的任何回答。
【问题讨论】:
我提前道歉,这是一个非常愚蠢的问题。只是出于好奇,(例如)function(a)和a.function()之间有什么区别?感谢您的任何回答。
【问题讨论】:
function(a)和a.function()的区别是函数和方法的区别。一个函数称为function(a),而不是在变量上调用。 a.function() 实际上是一个方法,在实例变量上调用。当a.function() 被调用时,无论a 是什么类,都有一个可以在该变量上调用的方法function()。而当调用function(a) 时,会调用一个以a 为参数的函数。一个例子是
' '.join(['a','b','c'])
方法join在字符串' '上被调用(因为join是属于str类的方法)并接受参数['a', 'b', 'c']。
【讨论】:
class Example():
def __init__(self):
self.x = 1
def change_x(self):
self.x = 5
print(self.x)
def example_function(x):
print(x)
a= Example()
a.change_x() #calling the object function of
example_function("hello") #calling the function in scope
#prints >> 5
# >> hello
当您something.function() 时,您正在调用该对象的函数。
当您是 function() 时,您正在调用您的命名空间中定义的范围内的函数。
【讨论】: