购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.6.4 创建新的对象

除了Python内置对象之外,用户可以创建新的对象。创建对象前需要先创建对象所属的类。可以将“类”看作是某类对象的模板,只有先定义一个类,才能基于该类创建任意数量的同类对象。将由类创建的对象称为该类的实例。

在Python中使用class语句创建新的类。创建类时以class语句开头,在class关键字的右侧输入类的名称,类的首字母通常使用大写,class语句以冒号结尾。与创建函数使用的def语句类似,class语句也是一个复合语句,除了定义类名称的首行代码之外,class语句的其他行代码用于定义类的功能,这些代码都要向右缩进指定的距离。

在定义类功能的代码中可以包含任意数量的变量和函数,其中的变量是类的属性,函数是类的方法。下面的代码是创建一个名为Person的类,并为该类创建了一个属性和一个方法,属性是name变量,方法是eat函数。

注意: 创建类的方法时,每个方法对应的函数必须在class语句内部向右侧缩进,每个函数的第一行不能与class语句垂直对齐。在为类创建的每个方法中的第一个参数表示方法所属的对象,这个对象就是运行代码时由当前类创建的对象。在Python中通常使用self作为每个方法的第一个参数,self并没有什么特别的含义,只不过是Python中的一种约定俗成。

运行上述代码后,可以使用Person类创建实际的对象,代码的格式与调用不带参数的函数类似。

     p = Person()

创建一个对象后,可以使用以下代码获取name属性的值。

     p.name
     '宋翔'

使用对象的eat方法,可以在屏幕上打印对象吃的是什么食物,这个食物作为参数传递给eat方法。

     p.eat('苹果')
     宋翔吃了一个苹果

上面使用的是定义类时为name属性设置的默认值。也可以在创建对象后,修改name属性的值,以便显示指定的姓名。下面是将上面几行代码组合到一起后的代码,此处将name属性设置为“黄帝”。

代码的运行结果如下:

     黄帝吃了一个苹果

如果希望在使用类创建一个对象时,能够为对象的各个属性设置初始值,则可以在类中定义一个名为__init__的方法,其中包含想要初始化的属性。使用类创建对象时,会自动调用该类中的__init__方法,并执行该方法中的代码,从而实现初始化属性值的功能。

下面的代码使用Person类创建一个对象,并在创建时以参数的方式指定name和age两个属性的初始值。

     p = Person('黄帝',9999)

使用下面两行代码可以检测name和age两个属性是否已被设置了初始值。 Dha+TZmP+MO5gydrSRhdKbJxk/YOoxZDYAX6KtO7+oxhnE9gw6tW0LoOkmv+gSUX

     p.name
     p.age
点击中间区域
呼出菜单
上一章
目录
下一章
×