Python读书笔记008:面向对象编程

编写类:

class Person:
    '''
    Class to represent a person
    '''
    def __init__(self):
        self.name = ''
        self.age = 0
>>> p=Person()
>>> p
<__main__.Person object at 0x030D9CD0>
>>> p.age
0
>>> p.name
''
>>> p.age=55
>>> p.age
55
>>> p.name='Moe'
>>> p.name
'Moe'

上述代码定义了一个名为Person的类。它定义了Person对象包含的数据和函数。它包含数据name和age,其中唯一的一个函数是__init__,这是用于初始化对象值的标准函数。所有类都应有方法__init__(self),这个方法的职责是初始化对象,如初始化对象的变量。self是一个指向对象本身的变量。



显示对象

方法是在类中定义的函数。

class Person:
    '''
    Class to represent a person
    '''
    def __init__(self):
        self.name = ''
        self.age = 0
    def display(self):
        print("Person('%s,%d')" % (self.name, self.age))
>>> p=Person()
>>> p.display()
Person('',0)
>>> p.name='Bob'
>>> p.age=25
>>> p.display()
Person('Bob',25)

特殊方法__str__用于生成对象的字符串表示:

class Person:
    '''
    Class to represent a person
    '''
    def __init__(self):
        self.name = ''
        self.age = 0
    def display(self):
        print("Person('%s',%d)" % (self.name, self.age))
    def __str__(self):
        return "Person('%s',%d)" % (self.name, self.age)
>>> p=Person()
>>> str(p)
"Person('',0)"

str简化display:

class Person:
    '''
    Class to represent a person
    '''
    def __init__(self):
        self.name = ''
        self.age = 0
    def display(self):
        print(str(self))
    def __str__(self):
        return "Person('%s',%d)" % (self.name, self.age)
>>> p=Person()
>>> p.display()
Person('',0)
>>> p.name='Bob'
>>> p.age=25
>>> p.display()
Person('Bob',25)

特殊方法__repr__:

class Person:
    '''
    Class to represent a person
    '''
    def __init__(self):
        self.name = ''
        self.age = 0
    def display(self):
        print(str(self))
    def __str__(self):
        return "Person('%s',%d)" % (self.name, self.age)
    def __repr__(self):
        return str(self)
>>> p=Person()
>>> p
Person('',0)
>>> str(p)
"Person('',0)"





























































你可能感兴趣的:(Python读书笔记008:面向对象编程)