针对一个对象,通过以下几个函数,可以获取到该对象的一些信息。

1、type() ,返回某个值的类型

>>> type()
<class 'int'>
>>> type('str')
<class 'str'>
>>> type(None)
<type(None) 'NoneType'>

使用就是括号里加参数,返回这个参数属于的类

123 是int类  'str'是 str类,None是NoneType类

>>> type()==type()
True
>>> type()==int
True
>>> type('abc')==type('')
True
>>> type('abc')==str
True
>>> type('abc')==type()
False

2、isinstance()  返回某个值是否是某个类

class Animal(object):
pass class Dog(Animal):
pass class Husky(Dog):
pass h = Husky() print('h是不是Animal类:',isinstance(h,Animal))
print('h是不是Dog类:',isinstance(h,Dog))
print('h是不是Husky类:',isinstance(h,Husky)) ------------------------------------------------------- h是不是Animal类: True
h是不是Dog类: True
h是不是Husky类: True

基本类型类似:

>>> isinstance('a', str)
True
>>> isinstance(, int)
True
>>> isinstance(b'a', bytes)
True

判断一个变量是否是某些类型中的一种,比如下面的代码就可以判断是否是list或者tuple:

>>> isinstance([, , ], (list, tuple))
True
>>> isinstance((, , ), (list, tuple))
True

3、dir()  获得一个对象的所有属性和方法 ,返回一个包含字符串的list ,一个str对象的所有属性和方法

>>> dir('ABC')
['__add__', '__class__',..., '__subclasshook__', 'capitalize', 'casefold',..., 'zfill']

判断对象是否有某个属性(函数,属性)

>>> class MyObject(object):
... def __init__(self):
... self.x =
... def power(self):
... return self.x * self.x
...
>>> obj = MyObject() --------------------------------------------------- >>> hasattr(obj, 'x') # 有属性'x'吗?
True
>>> obj.x >>> hasattr(obj, 'y') # 有属性'y'吗?
False
>>> setattr(obj, 'y', ) # 设置一个属性'y'
>>> hasattr(obj, 'y') # 有属性'y'吗?
True
>>> getattr(obj, 'y') # 获取属性'y' >>> obj.y # 获取属性'y' ---------------------------------------------------- 如果试图获取不存在的属性,会抛出AttributeError的错误: >>> getattr(obj, 'z') # 获取属性'z'
Traceback (most recent call last):
File "<stdin>", line , in <module>
AttributeError: 'MyObject' object has no attribute 'z'
可以传入一个default参数,如果属性不存在,就返回默认值: >>> getattr(obj, 'z', ) # 获取属性'z',如果不存在,返回默认值404
也可以获得对象的方法:

>>> hasattr(obj, 'power') # 有属性'power'吗?
True
>>> getattr(obj, 'power') # 获取属性'power'
<bound method MyObject.power of <__main__.MyObject object at 0x10077a6a0>>
>>> fn = getattr(obj, 'power') # 获取属性'power'并赋值到变量fn
>>> fn # fn指向obj.power
<bound method MyObject.power of <__main__.MyObject object at 0x10077a6a0>>
>>> fn() # 调用fn()与调用obj.power()是一样的

Python对象相关内置函数的更多相关文章

  1. python学习交流 - 内置函数使用方法和应用举例

    内置函数 python提供了68个内置函数,在使用过程中用户不再需要定义函数来实现内置函数支持的功能.更重要的是内置函数的算法是经过python作者优化的,并且部分是使用c语言实现,通常来说使用内置函 ...

  2. python 常见的内置函数

    内置函数 接下来,我们就一起来看看python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数.这 ...

  3. Python进阶-VII 内置函数

    一.内置函数引入 我们已经了解的有; print()  input() range() next()  dir() str() int() list() set() tuple() dict() he ...

  4. python常用的内置函数哈哈

    python常用的内置函数集合做一个归类用的时候可以查找 abs 返回数字x的绝对值或者x的摸 all (iterable)对于可迭代的对象iterable中所有元素x都有bool(x)为true,就 ...

  5. python常用的内置函数

    python常用的内置函数集合做一个归类用的时候可以查找- abs 返回数字x的绝对值或者x的摸 - all (iterable)对于可迭代的对象iterable中所有元素x都有bool(x)为tru ...

  6. 十六. Python基础(16)--内置函数-2

    十六. Python基础(16)--内置函数-2 1 ● 内置函数format() Convert a value to a "formatted" representation. ...

  7. 十五. Python基础(15)--内置函数-1

    十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...

  8. Python的常用内置函数介绍

    Python的常用内置函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.取绝对值(abs) #!/usr/bin/env python #_*_coding:utf-8_ ...

  9. python之路——内置函数和匿名函数

    阅读目录 楔子 内置函数 匿名函数 本章小结 楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们 ...

随机推荐

  1. Scala - 快速学习02 - 搭建开发环境

    1- 下载与安装 下载链接:http://www.scala-lang.org/download/ CMD To run Scala from the command-line, simply dow ...

  2. 阿里巴巴是如何打通 CMDB,实现就近访问的?

    CMDB在企业中,一般用于存放与机器设备.应用.服务等相关的元数据.当企业的机器及应用达到一定规模后就需要这样一个系统来存储和管理它们的元数据.有一些广泛使用的属性,例如机器的IP.主机名.机房.应用 ...

  3. php5.5+apache2.4+mysql5.7在windows下的配置

    apache2.4下载和安装 下载apache2.4 https://www.apachelounge.com/download/VC11/ 提取解压目录Apache24到d:/dev/Apache2 ...

  4. Database Management System 基础01:管理自己的任何事

    前言 系列文章:[传送门] 这Database Management System 系列准备也慢慢的写出来了.Database Management是我学习的一块,这块出的也许比较慢.比较忙吧,坚持每 ...

  5. 图片预览(适用于IE6,9,10,Firefox)

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  6. MFC原理第二讲.MFC的初始化过程

    MFC原理第二讲MFC的初始化过程 一丶简介 通过上一讲.我们手工模拟了一个MFC程序. 但是上一讲留下了疑问. 就是WinMain在哪.以及消息处理在哪里. 这一节主要就是讲解Winmain在哪里. ...

  7. 开始翻译Disruptor

    刚开始接触Disruptor,看了作者的博客,发现这个大牛很与众不同,他不仅讲解自己的框架的设计思想,还深度介绍了这样设计的原因,其知识范围涵盖了操作系统.数据结构.计算机组成,很有学习的价值.网上有 ...

  8. Linux终端会话实时共享(kibitz)

    另一篇关于终端会话共享的文章:Linux录制.回放和共享终端操作 kibitz可以将一个会话(你所操作的)实时分享给本机的其它登陆用户(你想让别人看到的).通过这个工具,你敲什么命令,输出了什么内容对 ...

  9. Go Web:HttpRouter路由

    HttpRouter是一个轻量级但却非常高效的multiplexer.手册: https://godoc.org/github.com/julienschmidt/httprouter https:/ ...

  10. Spring Cloud Stream如何处理消息重复消费?

    最近收到好几个类似的问题:使用Spring Cloud Stream操作RabbitMQ或Kafka的时候,出现消息重复消费的问题.通过沟通与排查下来主要还是用户对消费组的认识不够.其实,在之前的博文 ...