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>
广告