This article mainly introduces the differences between functions and methods in Python from several dimensions:
First, let’s analyze it from the perspective of classification.
(1) Classification of functions:
Built-in functions: Some functions embedded in python. Anonymous function: One line of code implements a function. Recursive function custom function: define functions according to your own needs.
(2) Classification of methods:
Ordinary method: method called directly with self. Private method: __function name, a method that can only be called in the class. Property method: @property, disguise the method as a property to make the code look more reasonable. Special method (double underline method): Taking __init__ as an example, it is used to encapsulate the attributes of the instantiated object. As long as the object is instantiated, the __init method will be executed. If there is no subclass of the object, the parent class will be searched ( Super class), if there is no parent class (super class), directly inherit the object (python 3.x) class and execute the __init__ method in the class. Class method: operate the properties and methods in the public template by calling the class name. Static method: There is no need to pass in the class space or object method. The function is to ensure the consistency and standardization of the code. It can be a completely independent method outside the class, but for the consistency of the code, it is uniformly placed in a certain module (py file) middle.
Related recommendations: "Python Video Tutorial"
Secondly, analyze from the perspective of scope:
(1 ) Function scope: From the beginning of the function call to the completion of function execution, after returning to the caller, the space opened during the execution process will be automatically released. That is to say, after the function execution is completed, the value of the variable is modified inside the function body through assignment, etc. It will not be retained, and the opened space will be automatically released after it is returned to the caller.
(2) Method scope: When a method is called through an instantiated object, the space opened after the call will not be released, which means that the modified value of the variable in the calling method will always be retained.
Finally, the calling method is different.
(1) Function: Called through "function name ()".
(2) Method: Called through "object.method name".
class Foo(object): def func(self): pass #实例化 obj = Foo() # 执行方式一:调用的func是方法 obj.func() #func 方法 # 执行方式二:调用的func是函数 Foo.func(123) # 函数
The above is the detailed content of The difference between methods and functions in python. For more information, please follow other related articles on the PHP Chinese website!