Python类⽅法总结讲解
⼀、类⽅法
在类中的函数称为类⽅法。与普通函数定义稍有区别。
1.普通⽅法
1.1普通⽅法定义
普通⽅法与⼀般函数的定义稍有区别的点羊奶的功效 在于第⼀个参数是lf,,指代的意思是指向实例对象本⾝。如下图定义
classPerson:
def__init__(lf,name,age):
#name=对象的那个name,age=对象的那个age
=name
=age
1.2普通⽅法调⽤
思考⼀下函数的调⽤是函数名(),类的⽅法调⽤呢?
类⽅法调⽤必须要借助对象。调⽤⽅式:对象.⽅法名()。
不能直接⽤类名.⽅法名(),前⾯已经说过了类中的⽅法第⼀个参数是lf,代表的是实例对象本⾝,所以类是不能直接调⽤普通
⽅法的
#实例化对象cat
c婚姻法离婚规定 at=Animals()
#调⽤类中普通⽅法run
()
如果使⽤类名.⽅法名的时候会出现:TypeError:run()missing1requiredpositionalargument:'lf',遗失⼀个参
数。
但实际上我们再使⽤对象.⽅法名()的时候也没有带lf,却没有报遗失⼀个参数。
原因:当我们实例化对象的时候,即cat=Animal()执⾏的时候已经将cat的地址传给lf,此时lf指代的是cat.
2.魔术⽅法
2.1魔术⽅法定义
前⾯普通⽅法是需要对象名.⽅法名()去调⽤,⽽我们的魔术⽅法⽐较特殊,他是在特殊时刻⾃动触发,即不需要调⽤。
2.2常见魔术⽅法
__init__(lf,[参数名])对象创建时⾃动调⽤的⽅法
__str__(lf,[参数名])函数有返回值,当打印对象名的时候⾃动调⽤
__del__(lf)当删除引⽤时⾃动调⽤
__call__(elf,[桶装水广告 参数名])当执⾏对象名()时⾃动调⽤即把对象当成函数使⽤
看上图我们只是创建了cat对象,并没有调⽤__init__⽅法,但是却执⾏了⽅法⾥⾯的⽅法体,是因为在创建对象时python⾃动
触发了。
__init__⽅法有什么作⽤:
定义⼀个类时,常常要定义属性和⽅法,属性是类的⼀个特征,⽽⽅法是它能做的事情。
所有的⼈都有名字和年龄,所以我们要定义⼀个Person类,拥有两个属性名字和年龄
如果在类⾥写如下图
classPerson():
name='jimi'
age=12
defrun(lf):
print('run')
person1=Person()
person2=Pers笔记本热点 on()
那么person1和person2对象拥有了Person的属性,但是此刻他俩的属性⼀样,可是并不符合每个⼈的特征啊?每个⼈的名字和
年龄不⼀致的。那怎么样才能创造出对象不⼀样的属性值,这⾥就⽤__init__
classPerson:
def__init__(lf,name,age):
#name=对象的那个name,age=对象的那个age
=name
=age
person1=Person('meimei',12)
#打印person1的屬性meimei12
print(,)
person2=Person('john',13)
##打印person1的屬性john13
print(,)
__str__是⽤來打印对象时返回⼀个值,所以__str__是有return语句的。如果不⽤__str__打印对象,对象就是⼀个地址
classPerson:
def__init__(lf,name,age):
#name=对象的那个name,age=对象的那个age
=name
=age
#def__团圆饼 str__(lf):
#return'这是name:{},这是age:{}'.format(,)
person1=Person('meimei',12)#打印结果<__main__.Personobjectat0x0000025C1F932C50>
print(person1)
3.类⽅法
3.1类⽅法定义
classPerson:
def__init__(lf,name,age):
#name=对象的那个name,age=对象的那个age
=name
=age
#def__str__(lf,*krg,**krg唐代楷书 s):
#return'这是name:{},这是age:{}'.format(,)
#类⽅法
@classmethod
deftest1(cls):
print('我是类⽅法')
⽅法前⽤装饰器@classmethod修饰。第⼀个参数为cls代表类
类⽅法特点:类⽅法⾥⾯不能调⽤普通⽅法
3.2类⽅法调⽤
1.对象名.⽅法名()
2.类名.⽅法名()
4.静态⽅法
4.1静态⽅法定义
classPerson:
def__init__(lf,name,age):
#name=对象的那个name,age=对象的那个age
=name
=age
#def__str__(lf):
#return'这是na儒学经典 me:{},这是age:{}'.format(,)
defrun(lf):
1()
()
print('我是run')
@classmethod
deftest1(cls):
print('我是类⽅法')
@staticmethod
deftest(*krgs):
1()
print('我是静态⽅法')
静态⽅法⽤装饰器@staticmethod修饰,⽆cls,lf参数
4.2静态⽅法调⽤
对象名.静态⽅法名()
类名.静态⽅法名()
⼆总结
普通⽅法中:
1.可调⽤普通⽅法,使⽤lf.⽅法名()
2.可调⽤静态⽅法,使⽤类名.⽅法名()
3.可调⽤类⽅法,使⽤类名.类名.⽅法名()
静态⽅法:
1.不可调⽤普通⽅法
2.可调⽤类⽅法,类名.⽅法名()
3.可调⽤南方红豆杉 静态⽅法,类名.⽅法名()
类⽅法:
1.不可调⽤普通⽅法
2.可调⽤类⽅法,类名.⽅法名()
3.可调⽤静态⽅法,类名.⽅法名()
到此这篇关于Python类⽅法总结讲解的⽂章就介绍到这了,更多相关Python类⽅法总结内容请搜索以前的⽂章或继续浏览下⾯的
相关⽂章希望⼤家以后多多⽀持!
本文发布于:2023-03-26 07:38:17,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1679787499391893.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:方法明.doc
本文 PDF 下载地址:方法明.pdf
留言与评论(共有 0 条评论) |