内置方法(代码片段)

游走在边缘的人 游走在边缘的人     2022-11-21     282

关键词:

isinstance(obj,cls)和issubclass(sub,super)

isinstance(obj,cls)检查是否obj是否是类 cls 的对象

class Foo(object):
    pass
obj = Foo()
isinstance(obj, Foo)

issubclass(sub, super)检查sub类是否是 super 类的派生类

class Foo(object):
    pass
class Bar(Foo):
    pass
issubclass(Bar, Foo)

反射

反射:通过字符串映射到对象的属性

class BlackMedium:
    feature=‘Ugly‘
    def __init__(self,name,addr):
        self.name=name
        self.addr=addr

    def sell_house(self):
        print(‘%s 黑中介卖房子啦,傻逼才买呢,但是谁能证明自己不傻逼‘ %self.name)
    def rent_house(self):
        print(‘%s 黑中介租房子啦,傻逼才租呢‘ %self.name)

b1=BlackMedium(‘万成置地‘,‘回龙观天露园‘)

#检测是否含有某属性
print(hasattr(b1,‘name‘))
print(hasattr(b1,‘sell_house‘))

#获取属性
n=getattr(b1,‘name‘)
print(n)
func=getattr(b1,‘rent_house‘)
func()

# getattr(b1,‘aaaaaaaa‘) #报错
print(getattr(b1,‘aaaaaaaa‘,‘不存在啊‘))

#设置属性
setattr(b1,‘sb‘,True)
setattr(b1,‘show_name‘,lambda self:self.name+‘sb‘)
print(b1.__dict__)
print(b1.show_name(b1))

#删除属性
delattr(b1,‘addr‘)
delattr(b1,‘show_name‘)
delattr(b1,‘show_name111‘)#不存在,则报错

print(b1.__dict__)

setattr,delattr,getattr方法

用法

class Foo: #Dict
    def __init__(self,name):
        self.name=name

    def __getitem__(self, item): #item=‘namexxx‘
        # print(‘getitem...‘)
        return self.__dict__.get(item)

    def __setitem__(self, key, value):
        # print(‘setitem...‘)
        # print(key,value)
        self.__dict__[key]=value

    def __delitem__(self, key):
        # print(‘delitem...‘)
        # print(key)
        del self.__dict__[key]
T = Foo(‘alex‘)
# print(T.__dict__)
#查,会触发getitem的运行
print(T[‘name‘])
#改,会触发setitem的运行
T[‘name‘] = ‘Alex‘
print(T[‘name‘])
#删除,会触发detitem的运行
del T[‘name‘]
print(T[‘name‘])

__str__方法

__str__只在打印的时候会触发

class Foo:
    def __init__(self,name,age,sex):
        self.name = name
        self.age = age
        self.sex = sex
    #在打印的时候会触发运行
    def __str__(self):
        return (‘<name:%s><age:%s><sex:%s>‘%(self.name,self.age,self.sex))

obj = Foo(‘alex‘,38,‘女‘)
print(obj)
‘‘‘
输出结果:
<name:alex><age:38><sex:女>
‘‘‘

del方法

析构方法,当对象在内存中被释放时,自动触发执行
注:如果产生的对象仅仅只是python程序级别的(用户级),那么无需定义__del__,如果产生的对象的同时还会向操作系统发起系统调用,即一个对象有用户级与内核级两种资源,比如(打开一个文件,创建一个数据库链接),则必须在清除对象的同时回收系统资源,这就用到了__del__。

class Open:
    def __init__(self,filename):
        print(‘open file.......‘)
        self.filename=filename

    def __del__(self):
        print(‘回收操作系统资源:self.close()‘)

f=Open(‘settings.py‘)
# del f #f.__del__()
print(‘----main------‘) #del f #f.__del__()

python之字符串,列表,字典内置方法总结(代码片段)

目录数字类型的内置方法整型/浮点型字符串类型的内置方法列表的内置方法字典的内置方法数字类型的内置方法整型/浮点型加+减-乘*除/取余%余数取整//字符串类型的内置方法掌握熟悉了解按索引取值,strs[0]lstrip,rstripfind,rfind切... 查看详情

数据类型内置方法(代码片段)

数据类型内置方法为什么要有数据类型对于不同类型的数据需要不同的数据类型去描述数字类型内置方法整形作用:描述身高、体重、号码等整数定义:id=111111方法:+—*/%//存储一个值or多个值:一个值有序or无序:没有此概念... 查看详情

面向对象之内置方法(代码片段)

标签(空格分隔):内置方法面向对象里的内置方法:一、isinstance(obj,cls)和issubclass(sub,super)isinstance(obj,cls)检查是否obj是否是类cls的对象;例如:classFoo(object):passobj=Foo()isinstance(obj,Foo)issubclass(sub,super)检查sub类是否是super类的派生... 查看详情

python进阶小结(代码片段)

目录异常TODO深浅拷贝拷贝浅拷贝深拷贝数据类型内置方法数字类型内置方法整型浮点型字符串类型内置方法列表类型内置方法元祖类型内置方法字典类型内置方法集合类型内置方法布尔类型数据类型分类按值个数按有序无序按... 查看详情

内置方法(代码片段)

常用的内置方法就两个1.__str_改变对象的字符串显示classFoo:def__init__(self,name):self.name=namedef__repr__(self):return‘objinstr‘#这里只能是return#def__str__(self):#return‘%sobjinstr‘%self.namef=Foo(‘egon‘)print(f)#优先执行__str__ 查看详情

反射内置方法(代码片段)

  反射~~~  反射 使用字符串数据类型的变量名来获取这个变量的值反射类中的变量:静态属性 类方法  静态方法classFoo:school=‘qinghua‘#静态属性country=‘China‘language=‘English‘@classmethod#类方法defclass_method... 查看详情

python_020(几个经典内置方法)(代码片段)

一.内置方法1.内置方法表示:__名字__  几种名称:1)双下方法2)魔术方法3)类中的特殊方法/内置方法  类中的每一个双下方法都有它自己的特殊意义;所有的双下方法没有 需要你在外部直接调用的  父类Object都带有这些方... 查看详情

str类型内置方法(代码片段)

目录str类型内置方法用途定义方式常用操作和内置方法优先掌握需要掌握了解存一个值or多个值有序or无序可变or不可变强化训练str类型内置方法用途字符串数字、字母、下划线组成的一串字符,主要是用来描述一些类似于名字,... 查看详情

p2总复习(代码片段)

目录0531总复习数据类型内置方法整形类型内置方法浮点型类型内置方法字符串类型内置方法优先掌握需要掌握了解列表类型内置方法优先掌握需要掌握元组类型内置方法优先掌握字典类型内置方法优先掌握需要掌握集合类型内... 查看详情

元组类型内置方法(代码片段)

元组类型的内置方法1.用途?可以存多个数据2.定义?()内可以有多个任意类型的值,用逗号隔开,元组是不可变的列表name_tuple=('jack','alex','peiqi')name_tuple[0]='nick'#元素不能修改,会报错3.常用操作很内置方... 查看详情

内置方法(代码片段)

isinstance(obj,cls)和issubclass(sub,super)isinstance(obj,cls)检查是否obj是否是类cls的对象classFoo(object):passobj=Foo()isinstance(obj,Foo)issubclass(sub,super)检查sub类是否是super类的派生类classFoo(object):passclassBar(Foo) 查看详情

字符串类型内置方法(代码片段)

字符串类型内置方法按索引取值切片长度len成员用算in\notin移除空白strip切分split循环forlstrip\rstriplowerupperstartswithendswithrsplitjoinreplaceisdigitmsg='HelleJohn'print(f'msg[6]')print(f'msg[3:7:4]')pr 查看详情

内置方法(代码片段)

 1、absabs() 2、all(Iterable)所有元素都为真,返回Trueall([-1,0,1])all([-1,-1])all([])#true 3、any((Iterable)(一真即真)any([-1,0,1])any([-1,-1])any([])#false 4、ascii(object)变成字符串5、bin()把整数转换成2进制bin( 查看详情

字符串类型的内置方法(代码片段)

字符串类型的内置方法 字符串类型的内置方法昨天已经讲了一部分了,今天来补充一下剩余的内置方法移除字符串首尾的特定字符:strip()str_name=\'###oliver-chance###\'#移除字符串首尾的指定字符,可以选择方向print(str_name.strip(\'#\'))... 查看详情

列表,字典,元组,集合内置方法(代码片段)

列表类型内置方法作用:多个女朋友/定义方式:[]内用逗号隔开多个任意数据类型的元素friends_list=['longzeluola','canglaoshi','qiaobenai','nick']lis=list('abcd')方法:优先掌握索引取值(即可取又可改)切片长度ap... 查看详情

20180802(个别内置方法)(代码片段)

一.析构方法 (__del__) 构造方法:__new__ 创建(申请)一个空间析构方法:__del__  释放一个空间(某个对象借用了操作系统的资源,还要通过析构方法归还回去)例如:垃圾回收机制classA:def__del__(self):====>(析构方法:delA的... 查看详情

数据类型内置方法:列表/元组/集合(代码片段)

list列表类型内置方法作用:多个装备、多个爱好、多门课程,甚至是多个女朋友定义方式:[]内用逗号隔开,可以有多个任意数据类型的元素friends_list=['longzeluola','canglaoshi','qiaobenai','nick']lis=list('abcd&#... 查看详情

面向对象之内置方法(代码片段)

Python类的内置方法总结内置方法描述__new__()类的真正的构造方法,用于产生对象(空属性)__init__()初始化对象,在创建对象的时候调用__str__()控制用户显示,即在print()的时候显示__repr__()控制调试显示,在调试模式下显示的内容__call__()... 查看详情