函数与方法
转载
函数
def test(a,b)
print(a,b)
print('test')
# 有几个参数,就传几个参数
test(1,2)
方法
# 定义在类当中有特殊含义的,会自动传值的
class Person(objact):
# 1.没有任何装饰器装饰,绑定给对象的方法
# 特殊之处,对象来调用,会自动传值,把对象当作第一个参数传进来
def print_name(self):
print(self.name)
# 2.绑定给类的方法
# 特殊之处:类来调用,会自动传值,把类当作第一个参数传经来
@classmethod
def test1(cls):
print('类方法')
# 静态方法
@staticmethod
def test2(): # 有几个参数,传几个参数,严格意义不能叫方法
print('静态方法')
# 绑定给对象的方法和静态方法
p = Person()
# p = Person(name = 'richer') 这里是name是写不进去的,因为没有写init,父类有init,但没有东西
p.name = 'richer'
p.print_name()
p.test2()
# 绑定给类的方法和静态方法
Person.test1()
Person.test2()
# 邦定给类的方法,对象可以调用,也会自动把类传入
p = Person()
p.test2()
# 绑定给对象的方法,类可以调用,但是方法变成了普通函数,有几个值,就传几个值
p = Person()
p.name = 'richer' # 不定义name报错 name 'p' is not defined
Person.print_name(p) # 不传p,报错print_name() missing 1 required positional argument: 'self'
总结
1.方法会自动传值
2.函数有几个参数就得传几个值
3.方法不一定是方法,得看谁来调用,如果是对象的方法,类来调,就变成了普通函数
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。