标签:wro otc exit 使用 shu ioi 它的 下划线 字符串
s = ‘nihaoashuaige‘ print(len(s)) #len作为内置函数,部分数据类型调用它的时候就会返回其长度,那是什么让这个函数起了这样的作用呢 #看一下字符串的str类的内容里有__len__方法,所以调用len内置函数,其实就是触发了__len__方法
class A: def __init__(self,name,age): self.name = name self.age = age def __len__(self): print(‘调用len方法‘) return len(self.__dict__) obj = A(‘红‘,‘24‘) print(len(obj)) 打印结果: 调用len方法 2
#我们之前说过,可hash的就是不可变的数据类型,那么这个是如何进行判断的呢 print(hash(‘nihao‘)) #返回一串数字 print(hash(123)) #返回一串数字 print(hash([1,2,3])) #报错 打印结果: -3334696613266170804 123
class A: def __init__(self,name,age): self.name = name self.age = age def __str__(self): #打印的时候返回的结果值 return self.name obj = A(‘nihao‘,18) print(obj) 打印结果: nihao
class A: def __repr__(self): return ‘nihao‘ obj = A() print(repr(obj)) 打印结果: nihao
class A: def __init__(self): print(111) def __call__(self, *args, **kwargs): print(666) obj = A() obj() ##对象+()触发__call__方法 打印结果: 111 666
class A: def __init__(self): self.a = 1 self.b = 2 def __eq__(self, other): print(666) return ‘比较‘ a = A() b = A() print(a == b) #同一个类的两个实例进行比较,就会触发类中的__eq__方法 打印结果: 666 比较
class A: def __init__(self,name,age): self.name = name self.age = age def __new__(cls, *args, **kwargs): print(666) return object.__new__(cls) obj = A(‘xiaohong‘,‘19‘) ##构造一个对象是先触发__new__方法
class A: __instance = None def __new__(cls,*args,**kwargs): if not cls.__instance: obj = object.__new__(cls) cls.__instance = obj return cls.__instance ret = A() print(ret) ret = A() print(ret) ret = A() print(ret) 打印结果: <__main__.A object at 0x00000263D5202B00> <__main__.A object at 0x00000263D5202B00> <__main__.A object at 0x00000263D5202B00>
class A: def __init__(self,name): self.name = name def __getitem__(self, item): return self.__dict__[item] def __setitem__(self, key, value): self.__dict__[key] = value def __delitem__(self, key): print(‘删除的时候执行我‘) ret = A(‘nihao‘) print(ret[‘name‘]) #执行getitem ret[‘name‘] = ‘xiaohong‘ #执行setitem print(ret.__dict__) del ret[‘name‘] #执行delitem 打印结果: nihao {‘name‘: ‘xiaohong‘} 删除的时候执行我
class A: def __init__(self,text): self.text = text def __enter__(self): #开启上下文管理器时执行此方法 self.text = self.text + ‘来了‘ return self def __exit__(self, exc_type, exc_val, exc_tb): #执行完上下文管理器时执行此方法 self.text = self.text + ‘走了‘ return self obj = A(‘baobao‘) with obj as f: print(f.text) print(f.text) 打印结果: baobao来了 baobao来了走了
标签:wro otc exit 使用 shu ioi 它的 下划线 字符串
原文地址:https://www.cnblogs.com/Ailsa-a/p/10519885.html