day 27
今日内容:
关于面向对象的一些内置方法
1、__str__:在对象被打印时自动触发,可用来定义对象被打印。
注意:返回必须是一个字符串类型的值
###############################
class Foo:
def __init__(self,name,age):
self.name = name
self.age = age def __str__(self):
return 'name:%s,age:%s'%(self.name,self.age) obj1 = Foo('lay',37)
print(obj1)
##################################
2、__del__在对象被删除时先自动触发该方法,可以用来回收对象以外的其他相关资源,比如系统资源。
#####################################
class Foo:
def __init__(self,name,age):
self.name = name
self.age = age
self.f = open(r'a.test','r',encoding='utf-8') def __del__(self):
self.f.close()
print('文件已关闭') obj1 = Foo('lay',37)
print(obj1)
#####################################
3、hasattr(对象,属性):判断这个属性是否在这个对象内,存在返回True,不存在返回False
4、setattr(对象,属性,属性值):为这个对象创建一个属性
5、getattr(对象,属性,如果属性不存在设置返回值):照看这个对象的属性的属性值,不存在就返回设置的返回值,不设置返回值则报错
6、isinstance(对象,类名)判断这个对象是不是从这个类中产生的,是返回True,不是True
7、issubclass(类名1,类名2):判断类名1是否继承于类名2,是返回True,不是True
#############################################################
class Foo:
def __init__(self,name,age):
self.name = name
self.age =age
class Bar(Foo):
pass obj1 = Foo('yxf',18)
print(hasattr(obj1,'sex'))
print(setattr(obj1,'sex','male'))
print(obj1.__dict__)
print(getattr(obj1,'age',None))
delattr(obj1,'sex')
print(obj1.__dict__)
print(isinstance(obj1,Foo))
print(issubclass(Bar,Foo))
#############################################################
day 27的更多相关文章
- CSharpGL(27)讲讲清楚OpenGL坐标变换
CSharpGL(27)讲讲清楚OpenGL坐标变换 在理解OpenGL的坐标变换问题的路上,有好几个难点和易错点.且OpenGL秉持着程序难以调试.难点互相纠缠的特色,更让人迷惑.本文依序整理出关于 ...
- Amazon Interview | Set 27
Amazon Interview | Set 27 Hi, I was recently interviewed for SDE1 position for Amazon and got select ...
- CentOS7 编译安装LVS 互为主备 (实测 笔记 Centos 7.0 + ipvsadm 1.27 + keepalived 1.2.15 )
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) LVS服务器(两台): 系统:Centos7.0 64位(LVS+keepalived) LvsMaster:1 ...
- ORA-12899: value too large for column (actual: 27, maximum: 20)
导入数据时报错以下错误,这是因为原来的数据库是GBK的,每个汉字两个字节,但新数据库是UTF-8的,每个汉字是三个字节,导致超过长度了. ORA-12899: value too large for ...
- 背水一战 Windows 10 (27) - 控件(文本类): TextBlock
[源码下载] 背水一战 Windows 10 (27) - 控件(文本类): TextBlock 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) TextBlock 示例 ...
- Internet Download Manager 6.27.1 中文特别版(IDM)
软件介绍: 软件名称:Internet Download Manager(IDM) 软件大小:5.09M软件语言:简体中文 软件官网:http://www.internetdownloadmanage ...
- CentOS6.3 编译安装LAMP(4):编译安装 PHP5.3.27
所需源码包: /usr/local/src/PHP-5.3.27/libmcrypt-2.5.8.tar.gz /usr/local/src/PHP-5.3.27/mhash-0.9.9.9.tar. ...
- NYOJ题目27水池数目
--------------------------------------------- 这道题有点坑,也怪我总是有点马虎,按照正常人的思维0是表示有水池啊竟然是1表示有水池,最坑的是写反了竟然还能 ...
- 腾讯QQ认证空间4月27日已全面开放申请,欲进军自媒体
今天看到卢松松的博客上爆出,腾讯QQ认证空间4月27日已全面开放申请的消息,这一消息出来, 马浩周根据提示方法进行申请,下面先说说腾讯QQ认证空间的申请方法: QQ认证空间开放申请公告地址:http: ...
- 2017年1月1日 星期日 --出埃及记 Exodus 21:27
2017年1月1日 星期日 --出埃及记 Exodus 21:27 And if he knocks out the tooth of a manservant or maidservant, he ...
随机推荐
- js 下拉加载
// 下拉加载 var clientHeight = $(window).height() //当前可视的页面高度 console.log(clientHeight) //滚动条到页面底部 ...
- js-JavaScript实现数字的千位分隔符
function thousandSeparator(num) { return num && (num .toString().indexOf('.') != -1 ? num.to ...
- 【代码笔记】iOS-对数组进行排序
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ...
- 【代码笔记】iOS-My97DatePicker日历
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...
- 用vue写一个仿app下拉刷新的组件
如果你用vue弄移动端的页面,那么下拉刷新还是比较常见的场景,下面来研究如何写一个下拉刷新的组件(先上图); 由于节省大家的时间,样式就不贴出来了. html结构也不必介绍了,直接看代码吧-.- &l ...
- Oracle 12c SQL Developer连接报错(ORA-12505)
Oracle 12c SQL Developer连接报错(ORA-12505) 连接时报错码:Listener refused the connection with following error: ...
- 为什么你用不好Numpy的random函数?
为什么你用不好Numpy的random函数? 在python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面我们一起来汇总学 ...
- SD从零开始19-20
SD从零开始19 免费货物(Free Goods) 包含和不包含赠品数量Exclusive and Inclusive Bonus Quantities 在一些产业领域,例如零售,化工行业,消费品行业 ...
- JDK8下maven使用maven-javadoc-plugin插件报错
由于JDK8的doc生成机制比之前的要严谨许多,导致项目用maven打包的时候出错 解决办法: 添加-Xdoclint:none配置 完整配置如下: <plugin> <grou ...
- 关于SQLSERVER走起公众帐号推送视频的通知
关于SQLSERVER走起公众帐号推送视频的通知 为了SQLSERVER走起这个微博帐号和微信帐号更加多样化,内容更加丰富 也为了发挥微信.微博的媒介传播威力,在以后的微博.微信每日推送中会在适当的时 ...