反射
今天新学到一句有“哲学”’的话——Python中的“一切皆对象”。
对一个初学者来说还是比较懵懂的,虽然这两天对对象有了基础的认识,但是怎么能称为一切皆对象呢?
对于狭义上的对象来说,声明了一个类,那么这个类里的所有东西就赋予了通过这个类建造出来的所有对象,那么其它的对象又是通过哪种类来声明出来?
这样随着不断翻阅资料以及前辈的帮助,逐渐认识到,所有的东西要么是自己(我)创建的类声明对象,亦或是Python解释器中关于对象的类使得一些“对象”就这样产生了。理解得很笼统,有很多细节的地方还触及不到,如同蚂蚁去想象宇宙,Python就这样勾起了我更大的求知欲。。。。
在后面的资料中逐渐注意到了一个叫做反射的东西,主要用在远程调用数据的方面。
反射是通过字符串来得到目标类中是否有某种操作,亦或使用某种操作而不会因为没有使得运行的程序出错而终止,是一种比较“柔和”的方式,这一点就像是字典操作中的discard()。
主要的操作方式有:hasattr()、getattr()、setattr()、delattr()
先写远程调用的类名,再写要调用的操作名,但是有一个不好的地方在于,你调出来之后并不会告诉你这是一个变量、函数。亦或是一个对象,只有在你使用的时候出错了才知道它不是某种类型,这样就失去了它“柔和”的属性了呀…小小的脑袋,大大的疑惑。所以以后声明的时候后缀名加上数据类型或操作方式就会好一点吧,至少自己会懂。
来源:CSDN
作者:潜水怪
链接:https://blog.csdn.net/Monster_27/article/details/103864033