今日内容:

关于面向对象的一些内置方法

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的更多相关文章

  1. CSharpGL(27)讲讲清楚OpenGL坐标变换

    CSharpGL(27)讲讲清楚OpenGL坐标变换 在理解OpenGL的坐标变换问题的路上,有好几个难点和易错点.且OpenGL秉持着程序难以调试.难点互相纠缠的特色,更让人迷惑.本文依序整理出关于 ...

  2. Amazon Interview | Set 27

    Amazon Interview | Set 27 Hi, I was recently interviewed for SDE1 position for Amazon and got select ...

  3. 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 ...

  4. ORA-12899: value too large for column (actual: 27, maximum: 20)

    导入数据时报错以下错误,这是因为原来的数据库是GBK的,每个汉字两个字节,但新数据库是UTF-8的,每个汉字是三个字节,导致超过长度了. ORA-12899: value too large for ...

  5. 背水一战 Windows 10 (27) - 控件(文本类): TextBlock

    [源码下载] 背水一战 Windows 10 (27) - 控件(文本类): TextBlock 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) TextBlock 示例 ...

  6. Internet Download Manager 6.27.1 中文特别版(IDM)

    软件介绍: 软件名称:Internet Download Manager(IDM) 软件大小:5.09M软件语言:简体中文 软件官网:http://www.internetdownloadmanage ...

  7. 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. ...

  8. NYOJ题目27水池数目

    --------------------------------------------- 这道题有点坑,也怪我总是有点马虎,按照正常人的思维0是表示有水池啊竟然是1表示有水池,最坑的是写反了竟然还能 ...

  9. 腾讯QQ认证空间4月27日已全面开放申请,欲进军自媒体

    今天看到卢松松的博客上爆出,腾讯QQ认证空间4月27日已全面开放申请的消息,这一消息出来, 马浩周根据提示方法进行申请,下面先说说腾讯QQ认证空间的申请方法: QQ认证空间开放申请公告地址:http: ...

  10. 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 ...

随机推荐

  1. 你不知道的JavasScript上篇·第五章·原型·上

    1.[[Prototype]] JS中的对象有一个特殊的[[Prototype]]内置属性,其实就是对于其他对象的引用.几乎所有的对象在创建时这个属性都被赋予一个非空的值 (proto) var my ...

  2. windows下安装composer方法

    composer是一个新崛起的PHP的依赖管理工具.官方安装方法见: 此处假定: (1)php安装目录为C:/php5.4 (2)php 安装目录已经加入PATH环境变量(这样就可以在命令行直接输入“ ...

  3. 关于flex布局兼容

    (做个记录) 一.W3C各个版本的flex 2009 version 标志:display: box; or a property that is box-{*} (eg. box-pack) 201 ...

  4. 纯小白入手 vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定

    vue3.0 CLI 真小白一步一步入手全教程系列:https://www.cnblogs.com/ndos/category/1295752.html 我的 github 地址 - vue3.0St ...

  5. HDFS 2.7.4中hdfs-site.xml参数未配置引发的一些异常

    生产上部署了HDFS 2.7.4,最近遇到了一些异常,记录下来备忘: 一.dfs.datanode.directoryscan.throttle.limit.ms.per.sec DataNode运行 ...

  6. Linux awk命令常见使用方法介绍

    Linux awk命令常见使用方法介绍 By:授客 QQ:1033553122   awk运行方式有三种,其中常用的为命令行方式 awk [-F  field_separator]  '{patter ...

  7. 10款jQuery文本高亮插件

    [编者按]本文作者为 Julian Motz,主要介绍十款 jQuery 文本高亮插件的现状.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 很多应用或网站都为用户提供搜索关键词的方法.为了 ...

  8. kafka入门2:java 创建及删除 topic

    1.pom <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.1 ...

  9. Oracle EBS OPM 取消生产批

    --取消生产批 --created by jenrry SET serveroutput on; DECLARE p_batch_header_rec gme_batch_header%ROWTYPE ...

  10. Sql server 使用drop database 语句,无法删除正在使用的数据库的解决办法

    使用DROP DATABASE 删除数据库  显示“无法删除数据库 ,因为该数据库当前正在使用. 解决办法:在删除某一个数据库(下例中的“DB1”数据库)前,强制kill掉该数据库上的所有数据库连接. ...