PHP前端开发

如何获取python中的对象属性?

百变鹏仔 5小时前 #Python
文章标签 属性

对于刚刚接触到python这门编程语言的朋友来说,刚刚开始学习python时候,对于python中如何获取对象属性了解不多,在这篇文章之中我们就来讲解一下关于python获取对象属性这方面的知识吧。

当我们拿到一个对象的引用时,如何知道这个对象是什么类型、有哪些方法呢?

使用type()

首先,我们来判断对象类型,使用type()函数:

基本类型都可以用type()判断:

立即学习“Python免费学习笔记(深入)”;

&gt;&gt;&gt; type(123)<class>&gt;&gt;&gt; type('str')<class>&gt;&gt;&gt; type(None)<type></type></class></class>

如果一个变量指向函数或者类,也可以用type()判断:

&gt;&gt;&gt; type(abs)<class>&gt;&gt;&gt; type(a)<class></class></class>

但是type()函数返回的是什么类型呢?它返回对应的Class类型。如果我们要在if语句中判断,就需要比较两个变量的type类型是否相同:

&gt;&gt;&gt; type(123)==type(456)True&gt;&gt;&gt; type(123)==intTrue&gt;&gt;&gt; type('abc')==type('123')True&gt;&gt;&gt; type('abc')==strTrue&gt;&gt;&gt; type('abc')==type(123)False

判断基本数据类型可以直接写int,str等,但如果要判断一个对象是否是函数怎么办?可以使用types模块中定义的常量:

&gt;&gt;&gt; import types&gt;&gt;&gt; def fn():...     pass...&gt;&gt;&gt; type(fn)==types.FunctionTypeTrue&gt;&gt;&gt; type(abs)==types.BuiltinFunctionTypeTrue&gt;&gt;&gt; type(lambda x: x)==types.LambdaTypeTrue&gt;&gt;&gt; type((x for x in range(10)))==types.GeneratorTypeTrue