python面向对象--类的内置方法
时间:2019-08-23
本文章向大家介绍python面向对象--类的内置方法,主要包括python面向对象--类的内置方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#isinstance(obj,cls)判断obj是否是类cls的实例 #issubclass(cls,cls1)判断cls是否是cls1的子类或派生类 class Foo: pass class Bar(Foo): pass print(issubclass(Bar,Foo))#检查sub类是否是super类的派生类 f1=Foo() print(isinstance(f1,Foo))#检查是否obj是否是类cls对象
#自定义格式化的format方法 x='{0}{0}{0}'.format("dog") print(x) format_dic={ 'ymd':"{0.year}{0.mon}{0.day}", "m-d-y":"{0.mon}-{0.day}-{0.year}", "y:m:d":"{0.year}:{0.mon}:{0.day}" } class Date: def __init__(self,year,mon,day): self.year=year self.mon=mon self.day=day def __format__(self, format_spec):#改写系统内置的format属性 print("我执行了") print("-->",format_spec) if format_spec: fm=format_dic[format_spec] return fm.format(d1) else: return "为空" d1=Date(2016,12,26) #format(d1)#d1.__format__() print(format(d1))#d1.__format__() print(format(d1,"ymd")) d1.name="alex" print(d1.name) # x='{0.year}{0.mon}{0.day}'.format(d1) # print(x)
###改变字符串的显示方法 str,repr
# l=list("hello") # # print(l) # class Foo: # def __str__(self): # return "自己定制的对象的显示方式" # # f1=Foo() # print(f1)#-->str(f1)-->f1.__str__() # file=open("test.txt","w") # print(file) #自己定制str方法 class Foo: def __init__(self,name,age): self.name=name self.age=age # def __str__(self):#当前str与repr共存 # return "这是str" # # def __repr__(self):#repr或者交互式解释器 # return "名字是%s 年龄是%s" %(self.name,self.age) f1=Foo("egon",19) #repr(f1)-->f1.__repr__() # print(f1)#str(f1)--->f1.__str__()----->f1.__repr__() f1.__str__() print(str(f1))
#call方法,对象通过()访问 class Foo: def __call__(self, *args, **kwargs): print("实例执行了obj") f1=Foo() f1()#foo下的.__call__ Foo()#abc下的__call__
#通过类的next和iter实现迭代器协议 class Foo: def __init__(self,n): self.n=n def __iter__(self): return self def __next__(self): if self.n==100: raise StopIteration("终止了") self.n+=1 return self.n # l=list('hello') # for i in l: # print(i) f1=Foo(10) print(next(f1)) print(next(f1)) print(f1.__next__()) for i in f1: #f1.__iter__() ==iter(f1) print(i)#next(f1) for循环捕捉异常终止
class Fib:
def __init__(self):
self.a=1
self.b=1
def __iter__(self):
return self
def __next__(self):
self.a,self.b=self.b, self.a+self.b
if self.b>100:
raise StopIteration("终止了")
return self.a
f1=Fib()
print(next(f1))
print(next(f1))
print(next(f1))
print(next(f1))
print(next(f1))
print(next(f1))
print(next(f1))
print(next(f1))
print("=====>")
for i in f1:
print(i)
原文地址:https://www.cnblogs.com/tangcode/p/11398590.html
- 【Go 语言社区】HTML5 Canvas+JS控制电脑或手机上的摄像头实例
- MySQL Profile在5.7的简单测试(r10笔记第50天)
- 【Go 语言社区】Golang中interface判断nil问题
- 有趣的rownum测试(r10笔记第49天)
- 【Go 语言社区】关于Golang 数据缓存到redis内存数据库遇到的问题
- go中的读写锁RWMutex
- Centos7.4 版本环境下安装Mysql5.7操作记录
- 你必须知道的23个最有用的Elasticseaerch检索技巧
- Elasticsearch Jest实战深入详解
- 在oracle中计算时间差
- 【Go 语言社区】GO中怎么处理URL编码?
- C语言库函数rename
- Oracle 12c DG新特性Far Sync(r10笔记第67天)
- iOS微信特殊字符保护方案
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MySQL 8.0新特性 — 用户管理
- Java15的新特性
- ZooKeeper到底为Kafka的做了什么牺牲?
- Flutter原理:三棵重要的树(渲染过程、布局约束、应用视图的构建等)
- FlutterDojo设计之道—状态管理之路(六)
- Day9.函数进阶
- 关于requests.exceptions.SSLError: HTTPSConnectionPool
- Day10.高阶函数介绍
- python提示警告InsecureRequestWarning
- Day11.类和对象这回事儿
- Day12.魔法方法&方法重写
- Linux基础第一课——基础知识了解
- 【Vue CLI】手把手教你撸插件
- Linux基础第二课——系统架构
- Day13.继承&多态