python24 跟类相关的BIF

1. issubclass(class,classinfo)

  一个类被认为是其自身的子类

  classinfo可以是类对象组成的元组,只要class与其中任何一个候选类的子类,则返回True

  其他情况TypeError

>>> class A():
...     pass
...
>>> class B(A):
...     pass
...
>>> issubclass(B,A)
True
>>> issubclass(B,B)
True
>>> issubclass(A,B)
False
>>> issubclass(A,object)
True

2. isinstance(object, classinfo)

 1.如果第一参数不是对象,则永远返回False

 2.如果第二个参数不是类或者由类对象组成的元组,会抛出一个TypeError异常

>>> b1 = B()
>>> isinstance(b1,B)
True
>>> isinstance(b1,A)
True
>>> isinstance(b1,C)
False
>>> isinstance(b1,(A,B,C))
True

3.hasattr(object,name)

 attr = attribute : 属性

 测试对象是否有相应的属性

>>> class C:
...     def __init__(self,x=0):
...             self.x = x
...
>>> c1 = C()
>>> hasattr(c1,‘x‘)
True
>>> hasattr(c1,x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘x‘ is not defined

4.getattr(object,name[,default])

 访问对象的属性值,如果不存在返回设置的默认值,否则会抛出AttrubuteError

>>> getattr(c1,‘x‘)
0
>>> getattr(c1,‘y‘,‘您所访问的属性不存在...‘)
‘您所访问的属性不存在...‘

5.setattr(object,name,value)

 设置对象的属性值,如果不存在,将创建属性并赋值

>>> setattr(c1, ‘x‘, ‘5‘)
>>> getattr(c1, ‘x‘)
‘5‘
>>> setattr(c1, ‘y‘, ‘10‘)
>>> getattr(c1, ‘y‘)
‘10‘

6.delattr(object, name)

>>> delattr(c1,‘y‘)
>>> getattr(c1,‘y‘,‘访问属性不存在‘)
‘访问属性不存在‘

7.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()
>>> c1.getSize()
10
>>> c1.x
10
>>> c1.x = 18
>>> c1.x
18
>>> c1.size
18
>>> c1.getSize()
18

 >>> del c1.x
 >>> c1.size
 Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 AttributeError: ‘C‘ object has no attribute ‘size‘

 

    

时间: 2024-10-17 22:38:52

python24 跟类相关的BIF的相关文章

和类相关的BIF

issubclass(class,classinfo),判断第一个参数是第二个参数的子类,这个判断是比较宽松的判断.因为第二个参数也可以是元组,并且只要参数1是元组内任意一个元素的子元素,就会返回True. >>> class A: pass >>> class B: pass >>> class C(A): pass >>> issubclass(C,A) True >>> issubclass(C,B) Fals

类相关的BIF

1.issubclass(class,classinfo),用于判断 class 是否是 classinfo 子类.如果是,返回True, 否则返回 False. 注意:(1).一个类被认为是自身的子类 (2).classinfo 可以是一个元祖(元祖是由各个class名构成),只要 class 是其中任何一个候选类的子类,就会返回 True. 2.isinstance(object,classinfo) ,用于判断class是否是 classinfo 子类,如果是,返回True... 注意:(

课时40:类与对象:一些相关的BIF

目录: 一.一些相关的BIF 二..课时40课后习题及答案 ********************** 一.一些相关的BIF ********************** 1.issubclass(class,classinfo) 如果第一个参数(class)是第二个参数(classinfo)的一个子类,则返回True,否则返回False: (1)一个类被认为是其自身的子类. (2)classinfo可以是类对象组成的元组,只要class是其中任何一个候选类的子类,则返回True. (3)在其

Class类相关

Class类是java.lang包中的类,该类的实例可以帮助程序创建其他类的实例或者取得其他类的对象的内部信息 使用class类获得一个类相关的class类(注意得到的是class类,不是相关的类) 比如类名 classFuck类 有类方法(静态方法)public static Class forName(String classFuck)throw ClassNotFoundException 然后我们用Class对象调用以下方法(classFuck必须有一个无参构造函数 public Obj

C#异常类相关总结

C#异常类相关总结 在做异常处理的时候,最好能在应用程序所有的入口处(事件处理函数,主函数,线程入口)使用try-catch. 但是不要在程序构造函数入口处添加try-catch,因为此处产生异常,它自己并没有能力来处理,因为它还没有构造完毕,只能再向外层抛出异常. C#异常类一.基类Exception C#异常类二.常见的异常类 1.SystemException类:该类是System命名空间中所有其他异常类的基类.(建议:公共语言运行时引发的异常通常用此类) 2.ApplicationExc

玩转linux第四天之用户及组管理类相关命令(二)

1    前言 本文档主要介绍用户及组管理类相关命令如:useradd .usermod.passwd.userdel.groupadd.groupmod\gpasswd.groupdel.hage,chsh,chfn,.id,w,who,whoami.wck,gourpck.su,并提供相应案例解释其含义. 学习这些基础命令是一个Linux爱好者需要具备的首要条件,让小编带领你们进入Linux的世界看看它的一颦一笑. 读者对象 本文档(本指南)主要适用于以下人员: Linux爱好者 2    

[Python]小甲鱼Python视频第040课(类和对象:一些相关的BIF )课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Tue Mar 12 23:36:51 2019 @author: fengs """ """ 0. 如何判断一个类是否为另一个类的子类? issubclass(A,B) A是B的子类就返回True 1. 如何判断对象 a 是否为 类 A 的实例对象? isinstance(a,A) 2. 如何优雅地避免访问对象不存在的属性(不产生异常)?

python类相关总结(持续更新)

__init__ 构造函数 __dict__ vars()函数,获取命名空间里面的名称 __str__ str()函数,输出成员相关信息的内容 __repr__ repl()函数,同样输出信息,在Python内建类的__repr__()返回的字符串是一个有效的表达式,可以使用evel()来产生一个内含值相同的对象 __all__ 在module模块中指定from import *导出的名称 __class__   对象的成员属性之一,可以反着得到类信息 __self__ 通过绑定函数来获取对应对

JDBC工具类相关

第一种(单纯提取注册驱动和获取连接): 把注册驱动,获取连接一起写入工具类静态方法里,并释放资源 1 import java.sql.Connection; 2 import java.sql.DriverManager; 3 import java.sql.PreparedStatement; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 7 /** 8 * 提供获取连接和释放资源的方法 9 * 10 * @aut