python方法和函数

博客介绍了Python中函数和方法是相对概念,方法有默认参数self,二者可互相转化且能在创建实例后动态添加。通过代码演示,指出print()对实例是方法、对类是函数,对类直接赋值会使类增加函数、对象增加方法,判断函数或方法主要看执行时是否自动传参。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Python中,函数和方法其实是一个相对的概念,只不过方法会有一个默认参数self,但可以互相转化,也可以在创建实例后动态的添加。
下面用代码演示:

class A:#创建一个类
	def print(self):
		print('A')


a = A()
print(type(a.print))
#结果:<class 'method'>
print(type(A.print))
#结果:<class 'function'>

从代码中可以看出print()方法对于实例来说是个方法,而对于类来说只是一个函数。
如果想要动态地添加方法和函数,可以直接指定。代码如下:

class A:#创建一个类
	def print(self):
		print('A')


def print2(self):#创建一个函数
	print('print2')


a = A()
a.print2=print2 #相当于a对象创建了一个print2属性,并将print2函数赋值给它,
a.print2()
#结果:print2
print(type(a.print2))
#结果:<class 'function'>
#结果表明这样添加的是函数(并且只对a对象生效,类和其他对象无效)

如果对类直接赋值

class A:#创建一个类
	def print(self):
		print('A')


def print2():#创建一个函数
	print('print2')


a = A()
A.print2=print2
A.print2()
#结果:print2
print(type(A.print2))
#结果:<class 'function'>
print(type(a.print2))
#结果:<class 'method'>
a.print2()
#结果:TypeError: print2() takes 0 positional arguments but 1 was given

从代码中可以看出如果对类直接赋值,类增加了一个函数,而对象增加一个方法(所有对象都会有这个方法),最后a对象执行报错,是因为方法会自动传入一个self参数,而原本的print2函数没有参数。

总结:

我们判断是否为函数或方法,主要看执行时是否会自动传入一个参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值