I apologise in advance that this is a really nooby question. Just out of curiosity, what is the difference between (for example) function(a) and a.function()? Thanks for any answers.
2 Answers
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
When you something.function()
you are calling the function of that object.
When you are function()
you are calling the function within scope that is defined in your namespace.

- 4,901
- 3
- 24
- 31
The difference between function(a)
and a.function()
is the difference between a function and a method. A function is called function(a)
and is not called on a variable. a.function()
is actually a method and is called on an instance variable. When a.function()
is called, whatever class a
is, has a method function()
that can be called on that variable. Whereas, when function(a)
is called, a function is called with a
as the parameter. An example of this is
' '.join(['a','b','c'])
The method join
is called on the string ' '
(as join
is a method that belongs to the str
class) and takes the parameter ['a', 'b', 'c']
.

- 7,173
- 6
- 33
- 61