我定义了一个简单的类。
class Person:
age = 0
name = ''
def __init__(self,personAge,personName):
self.age = personAge
self.name= personName
def __str__(self):
return self.name
d = Person(24,'ram')
print(d)
所以o / p就像这样<__main__.Person object at 0x0000020256652CF8>
。但我希望o / p像这样ram
。我怎么能得到这个?
请纠正我。介绍中的提摩克
答案 0 :(得分:4)
你的缩进是错误的。您在 init (构造函数)中覆盖了 str 。如果您通过constrcutor获取/初始化变量,也不必指定类变量。 试试下面, `
class Person:
def __init__(self,personAge,personName):
self.age = personAge
self.name= personName
def __str__(self):
return self.name
d = Person(24,'ram')
print(d)
`
答案 1 :(得分:1)
您正在打印类对象,而不是返回方法的值(请参阅此处的最后一行)。修复了__str__()
方法可能存在的缩进问题。
class Person:
age = 0
name = ''
def __init__(self,personAge,personName):
self.age = personAge
self.name= personName
def __str__(self):
return self.name
d = Person(24,'ram')
print(d.__str__())
有关命名约定,另请参阅PEP 8。
答案 2 :(得分:1)
class Person:
age = 0
name = ''
def __init__(self, personAge, personName):
self.age = personAge
self.name= personName
def __str__(self):
return self.name
d = Person(24,'ram')
print(d)
__str__
应该超出__init__
范围