Python——类和对象(二)
2020-12-13 04:20
标签:func 引用 执行 self 多次 return 构造方法 int 区别 在类中定义的实例方法,Python会自动绑定方法的第一个参数(通常是self,下文也默认为self),第一个参数总会指向调用该方法的对象,因为实例方法(包括构造方法)第一个self参数会自动绑定,所以调用普通方法和实例方法时不需要为第一个参数传值(方法第一个参数代表的对象是不确定的,只有这个方法被调用,它代表的对象才会被确定下来)。 例: 如果在方法中把self参数作为返回值,则可以连续多次调用同一个方法,例: 调用类的方法可以以函数的方式执行它或者以方法调用,区别如下: 例: Python——类和对象(二) 标签:func 引用 执行 self 多次 return 构造方法 int 区别 原文地址:https://www.cnblogs.com/mingmingming/p/11108142.html一、实例方法和自动绑定self
class a:
def __init__(self):
k1 = 1 # 在构造方法中定义k1局部变量
print (‘k1的值:‘,k1)
self.k1 = 2 # self代表构造方法正在初始化的对象的k1实例变量变为2
print (‘k1初始化后的值:‘,self.k1)
def b(self):
print (‘执行b方法‘)
def c(self):
self.b() # 使用self参数引用调用c()方法的对象,不加self将会报错NameError: name ‘b‘ is not defined
print (‘执行c方法‘)
A = a()
‘‘‘
构造函数执行了一遍,打印
k1的值: 1
k1初始化后的值: 2
‘‘‘
A.c()
‘‘‘
执行b方法
执行c方法
‘‘‘
class p:
def y(self):
print (‘执行y方法‘)
return self
P = p()
P.y().y().y().y()
‘‘‘
打印
执行y方法
执行y方法
执行y方法
执行y方法
<__main__.p object at>
‘‘‘
二、函数和方法的区别
class a:
def __init__(self):
k1 = 1
print (‘k1的值:‘,k1)
self.k1 = 2
print (‘k1初始化后的值:‘,self.k1)
def b(self):
print (‘执行b方法‘)
def c(self):
self.b()
print (‘执行c方法‘)
# 实例化
A = a()
A.c() # 方法
a.c(A) # 函数,需要手动传self
# 可以使用ininstance()函数判断是函数还是方法
from types import FunctionType,MethodType
print (isinstance(A.c,MethodType)) # 打印 True
print (isinstance(A.c,FunctionType)) # 打印 False
print (isinstance(a.c,MethodType)) # 打印 False
print (isinstance(a.c,FunctionType)) # 打印 True