python魔法方法的操作
2018-08-02 本文已影响0人
He
image.png
今天是学习python的第十九天,怎么说呢,感觉还挺不错,以前虽然接触过一些其他的编程语言,但是不是太深入,这也算是我第一次较深入的接触编程语言。今天我们上午讲的是一些魔法方法的操作,比如:
(1)常见魔法属性和方法
输出
__str__():输出当前对象 在内存中的地址 十六进制表示字符串!
__repr__(): 用于在交互模式下,直接操作变量时~获取变量数据的定义!
比较
__gt__():grant than大于
__lt__(): less than小于
__ge__(): grant or equals大于或者等于
__le__(): less or equals小于或者等于
__ne__(): not equals 不等于
__eq__(): equals 等于
运算
__add__():加法
__sub__():减法
__mul__():乘法
__truediv__():除法
__floordiv__():整除
在剔除集合里面的重复的数据的时候,要hash()和eq()两个方法一起使用
下面就列出今天练习的一个例子:
# coding:utf-8
class User:
def __init__(self, name, passwd, nick):
self.name = name
self.passwd = passwd
self.nick = nick
def __hash__(self):
return self.name.__hash__()
def __eq__(self, other):
if self.name == other.name:
return True
return False
def __str__(self):
return self.name + ";" + self.nick
def __repr__(self):
return self.name + ";" + self.nick
u1 = User("tom", "123", "汤姆")
u2 = User("jerry", "123123123", "杰瑞")
u3 = User("shuke", "123", "舒克")
u4 = User("jerry", "123", "假杰瑞")
u5 = User("tom", "123", "假汤姆")
u = set()
print(u)
u.add(u1)
print(u)
u.add(u2)
print(u)
u.add(u3)
print(u)
u.add(u4)
print(u)
u.add(u5)
print(u)
然后今天还有一个练习就是将列表里的数据剔重:
a = [1,2,3,4,5,6,7,3,45,6,7,7,5]
a = set(a)
a = list(a)
print(a)