python_day25__各种特殊方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python_day25__各种特殊方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3001字,纯文字阅读大概需要5分钟。
内容图文
![python_day25__各种特殊方法](/upload/InfoBanner/zyjiaocheng/849/34fe793aa4f14448a2e3dace835c770c.jpg)
#-----------__add()__特殊方法-----------#
# class Foo:
# def __init__(self,name,age):
# self.name = name
# self.age = age
# def __add__(self,other):
# #self = obj1('haijing',19)
# #other = obj2('min',18)
# #return 123 #返回值可以任意的定义的啊
# return slef.age+other.age #返回的是18+19
#
# obj1=Foo('haijing',19)
# obj2=Foo('min',18)
# ret = obj1+obj2 #两个对象相加,自动执行第一个对象的__add__()方法,并且将第二个对象当作参数传递进入
# print(ret,type(ret))
#-------------析构方法(对象被销毁时自动执行)----------------#
#和java一样,在python中也会有销毁没人用的变量的空间的
# class Foo:
# def __del__(self):
# print('析构方法')
#----------__dict__() 作用:将对象中封装的所有内容通过字典的形式返回----------#
# class Foo:
# def __init__(self,name,age):
# self.name = name
# self.age = age
# self.a = '123'
#
# obj = Foo('haijing',18)
# d = obj.__dict__ #重要的是将没有调用到的对象,比如self.a,也给显示出来
# print(d) #打印{'name': 'haijing', 'age': 18, 'a': '123'}
#
# b = Foo.__dict__
# print(b) #将类中的所有方法打印出来,包括注释也会打印出来
#----------__getitem__方法、__setitem__和__delitem__方法,用来处理列表+对象的语句----------# *****
#先回顾以前讲过的列表的知识:
# li = [11,22,33,44] #相当于li = list([11,22,33,44])
# r1 = li[3] #去除列表中的第四个值
# del li[3] #删除列表中的第四个值
# print(li) #打印[11, 22, 33]
# li[2]=666 #给列表修改值
# print(li) #打印[11, 22, 666]
class Foo:
def __init__(self,name,age):
self.name = name
self.age = age
self.a = '123'
def __getitem__(self,item):
return item+10
def __setitem__(self,key,value):
print(key,value)
def __delitem__(self, key):
print(key)
li = Foo('haijing',18) #创建对象
r = li[8] #自动执行__getitem__方法,自动将8当作参数传递给item
print(r) #打印18
li[100] = 'haijing' #自动执行__setitem__方法,自动将100传给key,将haijing传给value,所以这一句打印100 haijing
del li[999] #自动执行__delitem__方法,将999传给key
#----------对列表进行索引和切片取值----------# ******
class Foo:
def __init__(self,name,age):
self.name = name
self.age = age
self.a = '123'
def __getitem__(self,item):
if type(item)==slice:
print('调用者希望内部进行切皮处理')
# slice中有start、stop、step属性 可以按下ctrl鼠标指向slice即可查看slice内部的属性
print(slice.start) #打印<member 'start' of 'slice' objects>
print(slice.stop) #打印<member 'stop' of 'slice' objects>
print(slice.step) #打印<member 'step' of 'slice' objects>
else:
print('调用者希望内部进行索引处理')
li = Foo('haijing',18)
li[123] #按照索引方式取值 索引是中的123整形 打印调用者希望内部进行索引处理
li[1:4:2] #按照切片方式取值,执行__getitem__方法,1为起始值 4为终止值 2为步长,切片中的1:4:2是slice型,并且把1:4:2传给item
#上边这一句打印调用者希望内部进行切片处理 如果中括号中有冒号,传给item的肯定就是slice类型了
#切片用的较少,索引用的还是较多的
haijing in HZ 今天研究生迎新晚会
2018.10.26 晚
内容总结
以上是互联网集市为您收集整理的python_day25__各种特殊方法全部内容,希望文章能够帮你解决python_day25__各种特殊方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。