一、特殊方法(魔术方法)
- 特殊方法都是使用__开头和结尾的
- 特殊方法一般不需要手动调用,需要在一些特殊情况下自动执行
1、str()
(1)这个特殊方法会在尝试将对象转换为字符的时候调用
(2)它的作用可以用来指定对象转换为字符串的结果(print函数)
2、repr()
(1)这个特殊方法会在对当前对象使用repr()函数时调用
(2)它的作用是指定对象在 ‘ 交互模式 ’ 中直接输出的结果
3、 object.gt(self,other) 大于
(1)会在对象做大于比较的时候调用,该方法的返回值将会作为比较的结果
(2)它需要两个参数,一个self表示当前队形,other表示和当前对象比较的对象
(3)self > other
4、object.bool(self)
(1)可以通过bool来指定对象转换为布尔值的情况
- 其他:
object.it(self,other) 小于 <
object.le(self,other) 小于等于 <=
object.eq(self,other) 等于 ==
object.ne(self,other) 不等于 !=
object.ge(self,other) 大于等于 >=
object.add(self,other)
object.sub(self,other)
object.mul(self,other)
object.matmul(self,other)
object.truediv(self,other)
object.floordiv(self,other)
object.mod(self,other)
object.divmod(self,other)
object.pow(self,other)
object.Ishift(self,other)
object.rshift(self,other)
object.and(self,other)
object.xor(self,other)
object.or(self,other)
len()获取对象的长度
# 定义一个Person类
class Person(object):
''''人类''''
def __init__(self,name,age):
self.name = name
self.age = age
def __str__(self):
return 'Person [name= %s,age=%d]'%(self.name,self.age)
def __repr__(self):
return 'Hello'
def __gt__(self,other):
return self.age > other.age
# 创建两个Person类的实例
p1 = Person('肖战',28)
p2 = Person('王一博',23)