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)
上一篇下一篇

猜你喜欢

热点阅读