内容目录
In [4]:
class Student:
def __init__(self, student_list):
self.student_list = student_list
# 魔法方法 让学生类具有序列
def __getitem__(self, item):
return self.student_list[item]
student = Student(['小明','小红','大熊'])
# for stu in student.student_list:
# print(stu)
# 可以让当前学生类具有序列的特性
for stu in student:
print(stu)
# 使用索引的方式对类进行取值
print(student[1])
小明 小红 大熊 小红
总结: 1、魔术方法可以添加类不具有的特性 2、魔术方法是Python解释器提供的,不能随意更改魔术方法的方法名
Python的数据模型&&数据模型对Python的影响¶
In [8]:
class Student:
def __init__(self, student_list):
self.student_list = student_list
# 魔法方法 让学生类具有序列
def __getitem__(self, item):
return self.student_list[item]
def __len__(self):
return len(self.student_list)
def __str__(self):
return '这是自定义个的一个学生类'
stu = Student(['小明','小红','大熊'])
# 获取实例对象中元素的长度,会调用__len__魔法函数
print(len(stu))
# 获取实例对象信息,会调用__str__魔法函数
print(stu)
3 这是自定义个的一个学生类
Python中魔法函数一览¶
非数学运算¶
字符串表示:
- repr
- str
集合、序列相关:
- len
- getitem
- setitem
- delitem
- contains
迭代相关:
- iter
- next
可调用:
- call
with上下文管理器:
- enter
- exit
数值转换:
- abs
- bool
- int
- float
- hash
- index
元类相关:
- new
- init
属性相关:
- getattr
- setattr
- getattribute
- setattribute
- dir
属性描述符:
- get
- set
- delete
携程:
- await
- aiter
- anext
- aenter
- aexit
数学运算¶
一元运算符
- neg (+)
- pos (-)
- abs 绝对值
二元运算符
- lt (<)
- le (<=)
- eq (==)
- ne (!=)
- gt (>)
- ge (>=)
算术运算符
- add (+)
- sub (-)
- mul (*)
- truediv (/)
- floordiv (//)
- mod (%)
- divmod (divmod())
- pow (pow())
- round (round())
反向算术运算符
- radd
- rsub
- rmul
- …
增量赋值算术运算符
- iadd
- isub
- ….
位运算符
- invert (~)
- ishift (<<)
- rshift (>>)
- and (&)
- or (|)
- xor (^)
反向位运算符
- rishift
- rrshift
增量赋值位运算符
- iishift
- irshift
- iand
- ixor
- ior
In [10]:
# 字符串表示魔术函数示例
class Student:
def __str__(self):
return '__str__:这是自定义的学生类'
def __repr__(self):
return '__repr__:这是自定义的学生类'
stu = Student()
stu
Out[10]:
__repr__:这是自定义的学生类
In [ ]: