Python面向对象详解( 二 )


 
注意事项
self关键字,尽管在参数列表中,但是传参的时候可以忽略它 。如:

Python面向对象详解

文章插图
 
可以看到,在传入参数的时候,self是透明的,可以不用理会它 。
三、类和对象现实世界的事物和类
Python面向对象详解

文章插图
 
现实世界的事物也有属性和行为,类也有属性和行为 。使用程序中的类,可以完美的描述现实世界的事物 。
类和对象
基于类创建对象的语法:
Python面向对象详解

文章插图
 
类只是一种程序内的“设计图纸”,需要基于图纸生产实体(对象),才能正常工作这种套路,称之为:面向对象编程 。
使用类和对象描述现实事物
在现实中,生产事物
Python面向对象详解

文章插图
 
在程序中通过类来描述
Python面向对象详解

文章插图
 
基于类创建对象
Python面向对象详解

文章插图
 
这就是面向对象编程:设计类,基于类创建对象,由对象做具体的工作 。
四、构造方法属性(成员变量)的赋值
Python面向对象详解

文章插图
 
构造方法
Python类可以使用:__init__()方法,称之为构造方法 。
可以实现:
 
  • 在创建类对象(构造类)的时候,会自动执行 。
  • 在创建类对象(构造类)的时候,将传入参数自动传递给__init__方法使用 。
 
Python面向对象详解

文章插图
 
构造方法注意事项
  • 重要的事情说三遍,构造方法名称:__init__ __init__ __init__,千万不要忘记init前后都有2个下划线
  • 构造方法也是成员方法,不要忘记在参数列表中提供:self
  • 在构造方法内定义成员变量,需要使用self关键字
 
Python面向对象详解

文章插图
 
这是因为:变量是定义在构造方法内部,如果要成为成员变量,需要用self来表示 。
五、其它内置方法魔术方法
上文学习的__init__ 构造方法,是Python类内置的方法之一 。
这些内置的类方法,各自有各自特殊的功能,这些内置方法我们称之为:魔术方法
Python面向对象详解

文章插图
 
__str__ 字符串方法
Python面向对象详解

文章插图
 
当类对象需要被转换为字符串之时,会输出如上结果(内存地址)
内存地址没有多大作用,我们可以通过__str__方法,控制类转换为字符串的行为 。
Python面向对象详解


推荐阅读