[Python]1/30/15 7:07 PM

OOP:

要创建新型对象,必须先创建类。从本质上说,类就是设计蓝图,用于创建特定类型的对象。类指定了对象将包含哪些数据和函数,还指定了对象与其他类的关系。对象封装了数据以及操作这些数据的函数。

此外还需要掌握类的继承

你可能注意到了,我们调用Person()时没有提供任何参数,但函数__init__(self)期望获得名为self的输入。这是因为在OOP中,self是一个指向对象本身的变量, 表示这个对象是针对这个类的。

所有类都应该有方法__init__(self),这个方法的职责是初始化对象,如初始化对象的变量。方法__init__仅被调用一次——在对象被创建时。正如你将看到的,可根据需要给__init__指定其他参数。

__init__(self)

__str__(self)

__repr__(self) 返回这个类默认的表示,可以用于跟__str__(self)一样的功能,返回一个字符串

如果你定义了方法__repr__,但没有定义方法__str__,则对对象调用str()时,将执行__repr__

给初始化的函数增加默认参数

setter and getter

@property

装饰器装饰器是Python中的一种通用结构,用于系统地修改既有函数。装饰器通常放在函数开头,并以@字符打头。

.set_age()改为

这里用@property定义了一个self.age使得整个程序在使用.set_age()中获得了简化,不必再使用.set_age()而是直接使用age

私有变量,self.__age两个下划线表示私有变量,要直接访问self.__age,需要在前面加上_Person例如:

p._Person__age

编写大型程序时,一条实用的经验规则是,首先将所有对象变量都设置为私有的(即以两个下划线打头),再在有充分理由的情况下将其改为公有的。这可避免无意间修改对象内部变量导致的错误。

类的继承:

Python中,pass语句表示“什么都不做”。对Human类来说,这是一个完整而实用的定义,它继承Player的代码

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.