首页 / PYTHON / Python反射和可调用对象
Python反射和可调用对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python反射和可调用对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1475字,纯文字阅读大概需要3分钟。
内容图文
![Python反射和可调用对象](/upload/InfoBanner/zyjiaocheng/742/e6c7770c4788436cb49aadc1a0199461.jpg)
我有两个问题.
>>> class One(object):
... pass
...
>>> class Two(object):
... pass
...
>>> def digest(constr):
... c = apply(constr)
... print c.__class__.__name__
... print constr.__class__.__name__
...
>>> digest(Two)
Two
type
如何创建对象’Two’? constr()或c()都不起作用;似乎apply将它变成了一种类型.
将类和实例传递给方法时会发生什么?
解决方法:
How would one create object ‘Two’?
Neither constr() or c() work; and it
seems that apply turns it into a
type.
以上评论是针对此代码做出的:
>>> def digest(constr):
... c = apply(constr)
... print c.__class__.__name__
... print constr.__class__.__name__
apply(不赞成:请参阅@ pyfunc的答案)肯定不会将第二类变成一个类型:它已经是一个.
>>> class Two(object): pass
...
>>> type(Two)
<type 'type'>
类是第一类对象:它们是类型的实例.如果你看下一个例子,这是有道理的.
>>> two = Two()
>>> type(two)
<class '__main__.Two'>
您可以看到一个类非常清楚地作为一个类型运行,因为它可以从类型返回.这是另一个例子.
>>> Three = type('Three', (Two, ), {'foo': 'bar'})
>>> type(Three)
<type 'type'>
>>> three = Three()
>>> type(three)
<class '__main__.Three'>
您可以看到该类型是可以实例化的类.它的构造函数有三个参数:类的名称,基类的元组和包含类属性的字典.它返回一个新类型aka类.
至于你的最后一个问题,
What happens when you pass a class
rather and an instance into a method?
你必须更加具体.类只是类型的实例,因此是第一类对象.询问如果我将一个类传递给一个方法会发生什么,就像问我将一个整数传递给一个方法会发生什么:它完全取决于该方法的期望.
内容总结
以上是互联网集市为您收集整理的Python反射和可调用对象全部内容,希望文章能够帮你解决Python反射和可调用对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。