python类、对象

学习完本篇,你将会深入掌握

  • 什么是类,对象
  • 了解类和对象之间的关系
  • 能独立创建一个People(人类),属性有姓名、性别、年龄。提供一个有参的构造方法,编写一个show方法,输出姓名、性别和年龄。

什么是类

  • 对象是现实世界事物的模型,类(class)就是创建这些模型的模板。类定义了对象需要描述的属性、具备的行为。可以把类看作创建对象的蓝图,从这个蓝图可以创建任意数量的对象。
  • 在程序中,类实际上就是数据类型。为了模拟真实世界更好的解决问题,往往需要创建解决问题所必须的数据类型。
  • 类是对客观世界的事物进行抽象思维活动后得到的“抽象数据类型”,而对象则是类的实例

类的定义

语法:
class  classname(object): 
    // 声明成员属性
    // 声明成员方法

实例:
class people:
    name = ‘’ #定义一个属性

    #定义一个方法
    def set_name(self,str):
        self.name = str

    #定义另一个方法
    def print_name(self):
        print self.name

对象

什么是对象

  • 定义一个对象可以是人们要进行研究的任何事物,不仅能代表具体的实体,还可以表示抽象的规则、计划或事件。在面向对象程序设计中,把要处理的事物抽象成对象。
  • 一个对象可以被认为是一个把数据(属性)和方法(行为)封装在一起的实体,其中对象的属性通过数据反映了对象当前的状态,对象的行为通过方法实现对象能够进行的操作。
  • 对象的两种成员
    1.成员属性
    2.成员方法

对象的定义

#根据前面定义的people类,定义如下两个对象
tom = people()
susun = people()
  • 计算机按照类中的成员变量和成员方法的定义,为当前对象相应的成员变量及成员方法分配内存空间。
  • 每个对象都有自己独立的一片内存空间

类的结构-属性

格式:
self.变量名 = value
也可以
变量名 = value;#这种方式放在方法(也称函数)外
  • 属性又称为实例变量,可以在类函数定义也可以在函数外定义。
  • 属性的作用域最小局限在本类中
  • 如果想定义一个属性不被外部访问需要在变量前加”__”

类的结构-方法

方法定义格式:
def 方法名(self,参数列表):
	……
   返回值
  • python中参数有值传递,也有引用
  • 当没有返回值是,python默认返回值为None
  • 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

类的结构-构造函数

构造定义格式:
def __init__(self,参数):
	……
  • 构造函数系统默认调用的方法
  • 在一个对象的生命周期中,构造器只用一次,用于创建对象,系统会自动调用,不允许手工调用。
  • 如果一个类没有提供函数,系统为默认提供一个无参的函数。
  • self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

测试