Python—面向对象06 内置方法
一 .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)
2. item系列
_开头 __结尾 的方法,在python中是系统内置的方法,一般会在某个时候自动触发
# item 系列
class Foo:
def __init__(self, name):
self.name = name
def __getitem__(self, item): # item = 'name'
# print('getitem.....')
# print(item)
return self.__dict__.get(item)
def __setitem__(self, key, value):
# print('setitem....')
# print(key, value)
self.__dict__[key] = value
def __delitem__(self, key):
self.__dict__.pop(key)
# del self.__dict__[key]
obj = Foo("gd")
# item 模拟字典的取值方式
print(obj['name']) #gd 触发 __getitem_ 方法
# 设置
obj['sex'] = 'boy'
print(obj.__dict__) # {'name': 'gd', 'sex': 'boy'}
# 删除
del obj['sex'] # 触发 __delitem__
print(obj.__dict__) # {'name': 'gd'}
3. __ str __
dic = {'name':'kaka', 'skill':'写轮复制'}
print(dic) # print(dic) #
# 类比一下,如果是对象,这个时候打印出来的应该是 function地址之类的,但是现在直接打印出了里面的数据属性
#------------------------------------------
class People:
def __init__(self, name, age):
self.name = name
self.age = age
# 打印对象的时候就会触发该方法,然后我们可以根据需求设置返回值
def __str__(self):
return 'name:%s age:%s'%(self.name, self.age)
obj = People('gd', 22)
print(obj) # 此时会触发 __str__方法
# name:gd age:22
4. __ del __
class Open:
def __init__(self, file_name):
self.file_name = file_name
def __del__(self):
# 程序运行结束后会调用此方法,可以在这里做 资源回收的逻辑
print("程序运行结束....")
f = Open('123.txt')
print("哒哒哒...")
# 哒哒哒...
# 程序运行结束....
....................
其他内置方法........后续碰到再补充
Python—面向对象06 内置方法的更多相关文章
- python 面向对象的内置方法
要求:了解即可,能用最好 """ 1.print(obj), str(obj), %s % (obj), 都调用obj.__str__()方法,若类中没有找__repr_ ...
- Python反射和内置方法(双下方法)
Python反射和内置方法(双下方法) 一.反射 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发 ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
- python字符串常用内置方法
python字符串常用内置方法 定义: 字符串是一个有序的字符的集合,用与存储和表示基本的文本信息. python中引号中间包含的就是字符串. # s1='hello world' # s2=&quo ...
- python字符串处理内置方法一览表
python字符串处理内置方法一览表 序号 方法及描述 1 capitalize()将字符串的第一个字符转换为大写 2 center(width, fillchar) 返回一个指定的宽度 widt ...
- python 面向对象进阶之内置方法
一 isinstance(obj,cls)和issubclass(sub,super) 1.1,isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(obj ...
- python 反射和内置方法
一.isinstance和issubclass class Foo: pass class Son(Foo): pass s = Son() #判断一个对象是不是这个类的对象,传两个参数(对象,类) ...
- Python 类的内置方法
#!/usr/bin/env python # -*- coding:utf-8 -*- # 作者:Presley # 邮箱:1209989516@qq.com # 时间:2018-11-04 # p ...
- NO.4:自学python之路------内置方法、装饰器、迭代器
引言 是时候开始新的Python学习了,最近要考英语,可能不会周更,但是尽量吧. 正文 内置方法 Python提供给了使用者很多内置方法,可以便于编程使用.这里就来挑选其中大部分的内置方法进行解释其用 ...
随机推荐
- MongoDB的MapReduce用法及php示例代码
MongoDB虽然不像我们常用的mysql,sqlserver,oracle等关系型数据库有group by函数那样方便分组,但是MongoDB要实现分组也有3个办法: * Mongodb三种分组方式 ...
- 百度地图api-动态添加覆盖物
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- RequireJS 2.0 正式发布
就在前天晚上RequireJS发布了一个大版本,直接从version1.0.8升级到了2.0.随后的几小时James Burke又迅速的将版本调整为2.0.1,当然其配套的打包压缩工具r.js也同时升 ...
- IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总
断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1: ...
- 5、栅格布局:ion-grid
/* --- html ----*/ <ion-content class="tabs"> <ion-grid> <h1>没有 warp 的 i ...
- sp 数据拼接html table表转换xml,发邮件
USE [BES_ADV] GO /****** Object: StoredProcedure [dbo].[RSP_FN_UNAPPLIED_Mail_Reminder] Script Date: ...
- PCA 降维算法详解 以及代码示例
转载地址:http://blog.csdn.net/watkinsong/article/details/38536463 1. 前言 PCA : principal component analys ...
- Maven学习篇一:eclipse构建运行maven web项目
1.new->other->maven project->next 2.选择创建简单项目(或者直接去掉勾,在后面选择maven-archetype-webapp) 3.设置坐标,名称 ...
- jscode属性排序
根据data中的value 对geCoorMap 进行排序,暂定降序排序. var data = [{name:"name1",value:29},{name:"name ...
- python 后台服务
centos 6x #!/bin/sh # chkconfig: 123456 90 10 # TTS Server for Speech Synthesis # workdir=/etc/speec ...