Python类相关的错误?

时间:2018-05-07 05:37:00

标签: python class

我定义了一个简单的类。

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。我怎么能得到这个?

请纠正我。介绍中的提摩克

3 个答案:

答案 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__范围