Python语法第9讲:面向对象

来源:互联网 发布:java 服务器文件同步 编辑:程序博客网 时间:2024/05/17 11:58

什么是对象?有句话说的好,万事万物皆对象!对象有3个特性,分别是继承、封装、多态,任何对象都有2个事务组成,分别是成员变量和成员方法,成员变量表示的是对象的属性,成员方法表示对象的行为,例如:人可以有自己的标志(属性),比如说年龄、身高、血型,也有自己的行为,比如说吃饭、睡觉、打豆豆。

1、创建类

1.1、结构

class 类名:    #属性--变量    ...    #方法--函数    ...
1.2、说明

Python中,通过class关键字定义类名,要求类名的首字母大写,定义成员方法时,要求传递self参数(相当于Java中的this关键字);Python中定义构造函数,要求构造函数的名称是__init__

1.3、示例

class Person:    #属性--变量    __sex = "男" #私有变量,只需要在变量前加两个下划线    name = None    age = None        #方法--函数    def sayHello(self, friendName):        print("Hello %s I'm %s %s years old" %(friendName, self.name, self.age) )        #构造函数    def __init__(self, name, age):        self.name = name        self.age = age
在以上示例代码中,定义了一个Person类,Person类中有3个属性,分别是sex、name和age;2个成员方法,其中一个成员方法是该类的构造函数,作用是初始化成员变量,self相当于Java中的this关键字

2、import关键字

在Python中通过import关键字导入模块,与Java中的import关键字类似

import 函数名 from 模块名 import 函数名import 模块名 as 函数名标识
3、实例化对象及对象的方法调用

import 面向对象.类对象.Person as pperson = p.Person("LiLei", 18)person.sayHello("HanMeimei")# print(p.__sex) #无法访问,因为__sex变量是私有的print(person._Person__sex) #python是伪私有,如果想访问私有变量可以通过p._Person__sex,即:对象名._类名__变量名
运行结果:




综合案例

需求说明:

声明一个Student类,Student中有2个成员变量分别是姓名(name)和分数(score),提供一个构造方法,作用是初始化成员变量;创建一个测试模块,实例化3个学生对象并将3个对象存放到一个数组中,要求控制台输出3个学生的总成绩

需求分解:

1、创建一个Student类,提供两个属性,name和score,一个构造函数,在函数中给成员变量赋值

2、在测试模块中导入Student对象

3、实例化3个对象,创建一个数组,将这3个对象放在数组中

4、定义一个totle变量用户计算成绩的合

5、定义一个for循环,获得每个学生的成绩,并且相加

实现:

Student.py

class Student:    name = ""    score = ""        def __init__(self, name, score):        self.name = name        self.score = score        
Test.py

from 练习.面向对象.Student import Studentstudent1 = Student("张三", 98)student2 = Student("李四", 60)student3 = Student("王五", 82)arr = [student1, student2, student3]totle = 0for stu in arr:    totle = totle + stu.scoreprint("3个学生的总成绩是:%s" %totle)
运行结果:







原创粉丝点击