Python中类的对象打印


对象是面向对象语言 (OOPs) 的一部分,它是类的实例。类是蓝图或模板,它指定给定类的属性和方法。当我们创建类的对象时,它包含所有与该特定对象相关的实例方法和变量。

使用__str__方法

Python中有两种方法,即__str__或__repr__,它们会自动调用字符串并用于打印对象及其详细信息。以下是使用__str__方法的语法。

def __str__(self):
	return string_representation
print(object_name(inputs)

def __repr__(self):
	return string_representation
print(object_name(inputs)

示例

在下面的示例中,我们使用Python创建一个类和一个对象;在类中,我们将定义函数以及__str__方法,并在其中提供格式化文本,最后打印对象。

class Person:
   def __init__(self, name, age, gender):
      self.name = name
      self.age = age
      self.gender = gender
        
   def __str__(self):
      return f"My name is {self.name} and I am {self.age} years old."

person1 = Person("John", 30, "male")
person2 = Person("Jane", 25, "female")

print(person1) 
print(person2)

输出

My name is John and I am 30 years old.
My name is Jane and I am 25 years old.

示例

在下面的示例中,如果我们省略方法的提及,则将打印对象的描述而不是对象的数据。

class Person:
   def __init__(self, language, state, gender):
      self.name = language
      self.age = state
      self.gender = gender
        
person1 = Person("John", 30, "male")
person2 = Person("Jane", 25, "female")

print(person1) 
print(person2)

输出

<__main__.Person object at 0x0000029D0DAD7250>
<__main__.Person object at 0x0000029D0DBEF7F0>

示例

在Python中,我们还有另一个名为__repr__的方法来打印对象的详细信息。此方法与__str__方法相同,但区别在于它处理对象的更多详细信息。

class Person:
   def __init__(self, name, state, place):
      self.name = name
      self.state = state
      self.place = place
   def __repr__(self):
      return f"{self.name} belongs to {self.state} and the home town of {self.name} is {self.place}"
        
person1 = Person("John", "Andhra Pradesh", "male")
person2 = Person("Jane", "Telangana", "female")

print(person1) 
print(person2)

输出

John belongs to Andhra Pradesh and the home town of John is Vishakhapatnam
Jane belongs to Telangana and the home town of Jane is Hyderabad

示例

当我们在用户定义的类中不使用__repr__并尝试打印对象时,print语句的输出将是对象的描述。

class Person:
   def __init__(self, name, state, gender):
      self.name = name
      self.state = state
      self.gender = gender

person1 = Person("John", "Andhra Pradesh", "male")
person2 = Person("Jane", "Telangana", "female")

print(person1) 
print(person2)

输出

<__main__.Person object at 0x0000029D0DBE7790>
<__main__.Person object at 0x0000029D0DBE7CA0>

更新于: 2023年11月6日

2K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告