python如何打印一个对象的全部属性

发布时间:2022-07-11 09:50:25 人气:35 作者:多测师

  Python打印对象的全部属性,可以使用__dict__方法。

  遇到这样一个情况,要打印出一个对象的各种属性。但是不同对象的属性名都不一样,结构也不同,无法写一个代码来实现。然后我找到

  了__dict__,使用这个属性,可以动态获取到对象的所有属性,不包括公用属性。

  class Teacher(object):

  display = "教师" # 有公有属性

  def __init__(self,name,age,course,salary):

  self.name = name

  self.age = age

  self.course = course

  self.__salary = salary # 也有私有属性

  # 在定义一个别的类

python如何打印一个对象的全部属性

  class Student(object):

  display = "学生"

  def __init__(self,name,sid,classes,score):

  self.name = name

  self.sid = sid

  self.calssed = classes

  self.__score = score

  def print_obj(obj):

  "打印对象的所有属性"

  print(obj.__dict__)

  t1 = Teacher("Jerry",36,"Python",20000)

  s1 = Student('Barry',12,"python01","B")

  print_obj(t1)

  print_obj(s1)

  通过__dict__,就可以动态的获取到对象的全部属性。获得的是一个字典,属性名是字典的key,属性值是字典的value。从输出看,私有

  属性也可以获得,只是不包括公有属性。

  然后,如果只想要属性值的话,可以对字典再加工。复习一下字典的3个方法:

  dict.items() :用元祖来存放key和vlaue

  dict.keys() : 只包含key

  dict.values() : 只包含value

  上面3个方法返回的都是一个可迭代对象,可以用for遍历,但不是迭代器,不能用next方法。

  以上内容为大家介绍了python如何打印一个对象的全部属性,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线