什么是自省?
在日常生活中,自省(introspection)是一种自我检查行为。
在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么、它知道什么以及它能做什么。自省向程序员提供了极大的灵活性和控制力。
说的更简单直白一点:自省就是面向对象的语言所写的程序在运行时,能够知道对象的类型。简单一句就是,运行时能够获知对象的类型。
例如python, buby, object-C, c++都有自省的能力,这里面的c++的自省的能力最弱,只能够知道是什么类型,而像python可以知道是什么类型,还有什么属性。
最好的理解自省就是通过例子: Type introspection 这里是各种编程语言中自省(introspection)的例子(这个链接里的例子很重要,也许你很难通过叙述理解什么是introspection,但是通过这些例子,一下子你就可以理解了)
回到Python,Python中比较常见的自省(introspection)机制(函数用法)有: dir(),type(), hasattr(), isinstance(),通过这些函数,我们能够在程序运行时得知对象的类型,判断对象是否存在某个属性,访问对象的属性。
dir()
dir() 函数可能是 Python 自省机制中最著名的部分了。它返回传递给它的任何对象的属性名称经过排序的列表。如果不指定对象,则 dir() 返回当前作用域中的名称。让我们将 dir() 函数应用于 keyword 模块,并观察它揭示了什么:
>>>importkeyword>>>dir(keyword)['__all__','__builtins__','__doc__','__file__','__name__','__package__','iskeyword','kwlist','main']
type()
type() 函数有助于我们确定对象是字符串还是整数,或是其它类型的对象。它通过返回类型对象来做到这一点,可以将这个类型对象与 types 模块中定义的类型相比较:
>>>type(42)<class'int'>>>>type([])<class'list'>
isinstance()
可以使用 isinstance() 函数测试对象,以确定它是否是某个特定类型或定制类的实例:
>>>isinstance("python",str)True
看完上述内容,你们掌握python中自省的意思是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注本站行业资讯频道,感谢各位的阅读!
本文由 贵州做网站公司 整理发布,部分图文来源于网络,如有侵权,请联系我们删除,谢谢!
自己建网站怎样建?如何免费搭建自己的网站呢?如果你在互联网行业工作,特别是在一些中小企业,我们经常会出现网站建设相关的问题,尤其是你刚加入创业公司,对方往往...
随着越来越多的用户使用微信客户端,微信用户的数量也在不断的膨胀,很多商家企业纷纷加入微商行列,因此微网页制作几乎成为一种潮流。怎么才能设计出称心如意的微网站呢?...
免费注册com网站怎么注册?如何免费注册com网站?注册com站点是使用.com域名作为后缀的站点,但几乎不可能。因为目前没有任何域名注册服务机构可以免费注...
a股和b股哪个好?1、a股主要面向国内投资者,而b股主要面向外国和港澳台公民,因为b股的正式名称是人民币特种股票,是在中国证券证券交易所上市交易但b股公司注册地和上市地都在中国的外资股票。在交易层面,以人民币标明面值,以外币认购和买卖。2、a股的手续费会比b股低。a股的成交率在0.2%左右,b股在1%左右。3、一般a股账户没有开户费,b股账户有开户费。一般b股账户开户费是120港币,沪b股账户开户...
网易理财的现金宝产品有风险吗?现金宝是网易理财平台精选的合作方提供的一款具有较高收益且保证资金随取随用的货币基金产品,货币市场基金是证券投资基金中的低风险品种,历史上未曾出现负收益情况。网易现金宝是互联网公司网易和知名的基金公司汇添富基金合作推出的理财产品,购买后即可享受货币基金收益。一分钱起存。收益高于银行活期存款,又具有很好的流动性,随取随用,支持7*24小时申请即时取现,取现资金实时到账。和...
卖家承担运费是指从卖家处发货到买家处的大陆地区首次发货运费,由卖家承担,不需要买家支付。买家只需要支付所挑选商品的费用即可。1、淘宝买家在发现商品出现问题时一定要提前和卖家协定退货的事宜,很多商品是用户自己不会操作,从而导致的效果不佳,经过客服的指导之后,如果发现产品的效果有所改观的话,就不需要再退货了!如果效果实在不行的话,买家就需要申请退货退款,在买家申请退款时,卖家就会告诉买家退货的地址,并...