权威的合肥网站建设建设电动三轮车官方网站
web/
2025/10/2 5:02:22/
文章来源:
权威的合肥网站建设,建设电动三轮车官方网站,北邻京网站茵建设,html网站分页怎么做铁乐学
python
2018/04/18 13
铁乐学
python_day23_
面向对象进阶
1_
反射
以下内容大部分摘自博客
cnblogs/Eva-J/
isinstance()
和
issubclass()
两者的返回值都是布尔值
isinstance()
能够检测到继承关系
type()
只能单纯的判
断类
isinstance()
判断一个对象和一个类有没有…铁乐学
python
2018/04/18 13
铁乐学
python_day23_
面向对象进阶
1_
反射
以下内容大部分摘自博客
cnblogs/Eva-J/
isinstance()
和
issubclass()
两者的返回值都是布尔值
isinstance()
能够检测到继承关系
type()
只能单纯的判
断类
isinstance()
判断一个对象和一个类有没有血缘关系
issubclass()
接收两个参数前一个是子类名后一个是父类名
如果返回
True,
说
明有父子
(
继承
)
关系。
isinstance(obj,cls)
检查
obj
是否是类
cls
的对象
class Foo(object): passobj Foo()
#
实例化
isinstance(obj, Foo)issubclass(sub, super)
检查
sub
类是否是
super
类的派生
类
class Foo(object): passclass Bar(Foo): passissubclass(Bar, Foo)issubclass
可以追溯
到
更远的源头例如
class
tuple_A():
passclass
grandfather_B(tuple_A):
passclass
father_C(grandfather_B):
passclass
son_D(father_C):
passprint(issubclass(son_D,
tuple_A))
#
返回
True
是不是很像吸血鬼家族呢
1
什么是反射
反射的概念是由
Smith
在
1982
年首次提出的主要是指程序可以访问、检测和修改它本身状态或行
为的一种能力自省。这一概念的提出很快引发了计算机科学领域关于应用反射性
的研究。它首先被程序语言的设计领域所采用
,
并在
Lisp
和面向对象方面取得了成
绩。
2
python
面向对象中的反射
通过字符串的形式操作对象相关的属性。
python
中的一切事物都是对象都可以使用反射
四个可以实现自省的函数
下列方法
适用于类和对象一切皆对象类本身也是一个对象
1hasattr(*args, **kwargs)def hasattr(*args, **kwargs): # real signature unknown
Return whether
the
object
has an attribute with
the
given
name.
This
is done
by
calling
getattr(obj,
name)
and
catching
AttributeError.
pass2getattr(object,
name,
defaultNone)def
getattr(object,
name,
defaultNone):
#
known
special
case
of
getattr
getattr(object, name[, default]) - value Get a named attribute from an object; getattr(x,
‘y’)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85438.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!