【如何在Python中获取类属性列表()】类是用户定义的蓝图或原型, 从中可以创建对象。类提供了一种将数据和功能捆绑在一起的方法。创建新类将创建一种新的对象类型, 从而允许创建该类型的新实例。每个类实例可以具有附加的属性以维护其状态。类实例还可以具有用于修改其状态的方法(由其类定义)。
例子:
# Python program to demonstrate
# classesclass Student:# class variable
stream = "COE"# Constructor
def __init__( self , name, roll_no):self .name = name
self .roll_no = roll_no# Driver's code
a = Student( "Shivam" , 3425 )
b = Student( "Sachin" , 3624 )print (a.stream)
print (b.stream)
print (a.name)
print (b.name)# Class variables can be accessed
# using class name also
print (Student.stream)
输出:
COE
COE
Shivam
Sachin
COE
注意:有关更多信息, 请参阅Python类和对象.
获取类属性列表 了解我们正在使用的属性很重要。对于小数据, 很容易记住属性名称, 但是在处理海量数据时, 很难记住所有属性。幸运的是, 我们在Python中有一些功能可用于此任务。
方法1:为了获得所有属性, 方法以及类的一些继承的魔术方法的列表, 我们使用了一个内置的dir().
例子:
class Number :# Class Attributes
one = 'first'
two = 'second'
three = 'third'def __init__( self , attr):
self .attr = attrdef show( self ):
print ( self .one, self .two, self .three, self .attr)n = Number( 2 )
n.show()# Passing both the object
# and class asargument
# to the dir method
print ( '\nBy passing object of class' )
print ( dir (n))print ( '\nBy passing class itself ' )
print ( dir (Number))
输出:
first second third 2通过传递类[‘ __class __’ , ‘ __ delattr __’ , ‘ __ dict __’ , ‘ __ dir __’ , ‘ __ doc __’ , ‘ __ eq __’ , ‘ __ format __’ , ‘ __ ge __’ , ‘ __ getattribute __’ , ‘ __ gt__’ , ‘ __hash __’ , ‘ __ init __’ , ‘ __ init_subclass __’ , ‘ __ le __’ , ‘ __ lt __’ , ‘ __ module __’ , ‘ __ ne __’ , ‘ __ new __’ , ‘ __ reduce __’ , ‘ __ reduce_ex __’ , ‘ __ repr __’ , ‘ __ setattr __’ , ‘ __ sizeof__’ ‘ , ‘ __ str __’ , ‘ __ subclasshook __’ , ‘ __ weakref __’ , ‘ attr’ , ‘ one’ , ‘ show’ , ‘ 3’ , ‘ two’ ]通过传递类本身[‘ __class __’ , ‘ __ delattr __’ , ‘ __ dict__’ , ‘ __ dir __’ , ‘ __ doc __’ , ‘ __ eq __’ , ‘ __ format __’ , ‘ __ ge __’ , ‘ __ getattribute __’ , ‘ __ gt __’ , ‘ __ hash __’ , ‘ __ init __’ , ‘ __ init_subclass __’ , ‘ __ le __’ , ‘ __ lt__’ , ‘ __module __’ , ‘ __ ne __’ , ‘ __ new __’ , ‘ __ reduce __’ , ‘ __ reduce_ex __’ , ‘ __ repr __’ , ‘ __ setattr __’ , ‘ __ sizeof __’ , ‘ __ str __’ , ‘ __ subclasshook ____, ‘ __ weakref __’ , ‘ one’ , ‘ show’ , “ 三个” , “ 两个” ]方法2:查找属性列表的另一种方法是使用模块检查。该模块提供了一种称为getmemebers()返回类属性和方法的列表。
示例1:
import inspectclass Number :# Class Attributes
one = 'first'
two = 'second'
three = 'third'def __init__( self , attr):
self .attr = attrdef show( self ):
print ( self .one, self .two, self .three, self .attr)# Driver's code
n = Number( 2 )
n.show()# getmembers() returns all the
# members of an object
for i in inspect.getmembers(n):# to remove private and protected
# functions
if not i[ 0 ].startswith( '_' ):# To remove other methods that
# doesnot start with a underscore
if not inspect.ismethod(i[ 1 ]):
print (i)
输出:
first second third 2
('attr', 2)
('one', 'first')
('three', 'third')
('two', 'second')
方法3:要查找属性, 我们也可以使用魔术方法__dict__。此方法仅返回实例属性。
例子:
class Number :# Class Attributes
one = 'first'
two = 'second'
three = 'third'def __init__( self , attr):
self .attr = attrdef show( self ):
print ( self .one, self .two, self .three, self .attr)# Driver's code
n = Number( 2 )
n.show()# using __dict__ to access attributes
# of the object n along with their values
print (n.__dict__)# to only access attributes
print (n.__dict__.keys())# to only access values
print (n.__dict__.values())
输出如下:
first second third 2
{'attr': 2}
dict_keys(['attr'])
dict_values([2])
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- SEO关键词(如何选择更好的关键词进行优化())
- 如何在Linux中安装Scala(详细步骤图解)
- 如何为C#安装和设置Visual Studio(步骤图解)
- 如何安装Android虚拟设备(AVD)(详细图解步骤)
- pso算法|【原】粒子群算法(PSO)的简单应用
- pytorch|注意力之双线性模型注意力
- Linux基础篇-8MySQL与PHP安装与配置
- 操作系统课内实践(内存管理)
- 操作系统实验2(进程管理)