Python 类的一些BIF
issubclass
issubclass(cls, class_or_tuple, /)
Return whether 'cls' is a derived from another class or is the same class.
class A:
pass class B(A):
pass class C:
pass print(issubclass(A,(B,A))) # 一个类会被认为自己的子类 . print(issubclass(A,B)) # 第一个是否是第二个类的子类 print(issubclass(B,(A,C))) help(issubclass)
=============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
True
True
True
False
>>>
isinstance
#isinstance 检查一个实例对象是否属于一个类 . (第二个也可以是一个元祖 可以有多个类.)
class A:
pass class B(A):
pass class C:
pass b1=B()
print(isinstance(b1,A)) print(isinstance(b1,B)) print(isinstance(b1,C)) print(isinstance(b1,(C,B)))
=============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
True
True
False
True
>>>
hasattr 判断一个 对象里面有没有该属性
# hasattr(第一个是对象.第二个是属性名) (attr=attribute 属性)
class A:
pass class B(A):
pass class C:
def __init__(self,x=0):
self.x=x #测试一个对象是否有指定的和属性.
c1=C()
print(hasattr(c1,'x'))# 属性必须用 '' 来 修饰
=============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
True
>>>
getattr(实例对象,属性,不存在打印的值)(attribute 属性) 得到一个实例对象的属性的值 , 如果该属性不存在则打印第三个参数
# getattr(object,name[,default) 返回对象指定的属性值 如果指定的参数不存在 如果你制订了default则会defaulf打印出来,否则会有一个arrtibute的异常 ,
class A:
pass class B(A):
pass class C:
def __init__(self,x=0):
self.x=x c1=C() print(getattr(c1,'x'))
print(getattr(c1,'y','您所访问的属性不存在'))
0
您所访问的属性不存在
>>>
setattr(实例对象,属性,值) 给实例对象一个属性值 如果该属性不存在则 建立属性然后赋值 .
class A:
pass class B(A):
pass class C:
def __init__(self,x=0):
self.x=x c1=C()
print(getattr(c1,'y','您访问的属性不存在')) print(setattr(c1,'y',0)) print(getattr(c1,'y','您访问的属性不存在'))
=============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
您访问的属性不存在
None
0
>>>
delattr(实例变量,属性) 属性不存在则抛出 AttributeError的异常
class A:
pass class B(A):
pass class C:
def __init__(self,x=0):
self.x=x c1=C()
print(getattr(c1,'y','您访问的属性不存在')) print(setattr(c1,'y',0)) print(getattr(c1,'y','您访问的属性不存在')) print(delattr(c1,'y')) print(getattr(c1,'y','您访问的属性不存在'))
=============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
您访问的属性不存在
None
0
None
您访问的属性不存在
>>>
property(fget=None,fset=None,fdel=None,doc=None)
(得到 , 重置 , 删除 . )
class C:
def __init__(self,size=10):
self.size=size def getSize(self):
return self.size def setSize(self,value):
self.size=value def delSize(self):
del self.size x=property(getSize,setSize,delSize,'这个难道是注释') c1=C() # 生成一个 对象实例 print(c1.getSize()) # 调用getSize()函数 . print(c1.x) c1.x=18 print(c1.size) # 调用 size 属性 . print(c1.getSize()) del c1.x print(c1.size)
=============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
10
10
18
18
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/new.py", line 30, in <module>
print(c1.size)
AttributeError: 'C' object has no attribute 'size'
>>>
Python 类的一些BIF的更多相关文章
- Python类中super()和__init__()的关系
Python类中super()和__init__()的关系 1.单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(sel ...
- LightMysql:为方便操作MySQL而封装的Python类
原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...
- python 类属性与方法
Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...
- python 类以及单例模式
python 也有面向对象的思想,则一切皆对象 python 中定义一个类: class student: count = 0 books = [] def __init__(self ...
- Python类的特点 (1):构造函数与方法
Python中,类的特点: #encoding:utf-8 class Parent(object): x=1 #x是Parent类的属性(字段) def __init__(self): print ...
- Python类属性,实例属性
1.Python类数据属性:定义在类里面但在函数外面的变量,它们都是静态的. #一段很简单的代码,但反应了很多 >>> class A(): a=1 #一个类里面有个属性a > ...
- python类及其方法
python类及其方法 一.介绍 在 Python 中,面向对象编程主要有两个主题,就是类和类实例类与实例:类与实例相互关联着:类是对象的定义,而实例是"真正的实物",它存放了类中 ...
- python类的定义和使用
python中类的声明使用关键词class,可以提供一个可选的父类或者说基类,如果没有合适的基类,那就用object作为基类. 定义格式: class 类名(object): "类的说明文档 ...
- Python类的探讨
我们下面的探讨基于Python3,我实际测试使用的是Python3.2,Python3与Python2在类函数的类型上做了改变 1,类定义语法 Python类定义以关键字class开头,一个类定义例 ...
随机推荐
- js对字符串函数之charAt()
var str="012345"; 字符串下标的index从0开始: charAt(index)返回指定位置的字符如果index不在0-str.length之间,返回一个空字符串: ...
- MySQL学习笔记_1_MySQL数据库管理系统概述
1. MySQL架构 C/S: client / server架构 MySQL DBMS(Data Bank Management System): 数据库管理系统 客户端 <---> 服 ...
- System.OutOfMemoryException: 内存不足。(转)
主要是网站生成水印图片的时候遇到的 原文地址:http://www.cnblogs.com/longgel/archive/2010/03/24/1693776.html 今天调试asp.net 程序 ...
- hdu5879 Cure
题目链接:hdu5879 Cure 题解:用字符串输入.n很大时答案趋近与(π^2)/6. #include<cstdio> #include<algorithm> #incl ...
- 怎么实现form表单提交后不重新刷新当前页面
怎么实现表单提交后不重新刷新当前页面 如何实现表单提交后不重新刷新当前页面 <form name='form1' id='form1' action='/xbcw/cw/xx_xx.ac ...
- SQL Server数据库(SQL Sever语言 事务)
事务:保障流程的完整执行保证程序某些程序在运行时同时成功同时失败,保证程序的安全性 begin tran --在流程开始的位置加 --此处写SQL语句 if @@error>0 --ERRORS ...
- State模式的经典应用场景:订单处理(c#实现)
State模式在对象内部状态发生变化的时候,改变自身的行为,这通常是通过切换内部状态对象实现的,对象将自身在各个状态的行为推给了状态对象,从而解开了行为与对象的依赖. 场景描述 在经典的订单处理场景中 ...
- juery 选择器 选择多个元素
使用,号: $("#goodSource,#mailState") 选择了id为goodSource或者mailState的元素,当两者之间有任何一个有改变时,将会触发该操作. / ...
- cmd扩展路径
在命令行窗口中,输入for /? 即可得到如下参数解释==== 对一组文件中的每一个文件执行某个特定命令. FOR %variable IN (set) DO command [command-par ...
- 在现有 SharePoint 服务器上安装 PowerPivot for SharePoint
步骤1: 检查 SQL Server 2008 R2 Analysis Services 实例的“程序”文件夹.如果您找到了现有安装或之前安装的证据,则执行剩余步骤.否则,直接执行步骤 2:安装 Po ...