新手学习Python第十天-新手笔记(速学)

一、特殊方法和特殊属性

1.1 特殊属性

    __dict__:获得类对象或实例对象所绑定的所有属性和方法的字典

1.2 特殊方法:

1.2.1 .__len__:通过重写__len__()方法,让内置函数len()的参数可以是自定义类型 长度

1.2.2 __add__():通过重写__add__()方法,可使用自定义对象具有“+”“功能

1.2.3.__new__():用于创建对象

1.2. 4.__init__():对创建的对象进行初始化

1.3 __add__()

a=100
b=20
c=a+b   #两个整数类型的对象相加操作
d=a.__add__(b)  #底层逻辑

print(c)
print(d)

整数相加的底层语法结构用__add__就是:c=a.__add__(b)

那么我让字符串相加呢?

class Student:
    def __init__(self,name):
        self.name=name
stu1=Student('张三')
stu2=Student('李四')
s=stu1+stu2
print(s)

结果错误,怎么办?这个时候就用到了__add__

class Student:
    def __init__(self,name):
        self.name=name
    def __add__(self,other):
        return self.name+other.name
stu1=Student('张三')
stu2=Student('李四')
s=stu1+stu2
print(s)

r=stu1.__add__(stu2)
print(r)

__add__() 语法结构

1.4__len__()

len(函数对象名)   或者   对象名+.+__len__()

lst=[11,22,33]
print(len(lst))
print(lst.__len__())

如果print(len(stu1))的话,那就报错。

所以在上面需要

def __len__(self):
    return len(self.name)

再print(len(stu1))就可以了 

1.5__new__:创建对象

从明天开始起,高强度学习  以后就没有休息喽  

打算以后6:00前到实验室,中午睡一小时,晚上10:00回寝室

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值