python(面向对象设计)

三大编程范式

1.面向过程

2.面向对象

3.函数式编程

例.对象建立,但只是单一的

# -*- coding: utf-8 -*-
people1={
    'name':'bob',
    'age':'10',
    'Gender':'man',
    'sport':'basketball'
}

people2={
    'name':'lily',
    'age':'12',
    'Gender':'men',
    'sport':'sing'
}

def do(people):
    print('%s like %s' % (people['name'],people['sport']))

def gender(people):
    print('%s is a %s' % (people['name'],people['Gender']))

do(people1)
gender(people2)

 进一步完善

# -*- coding: utf-8 -*-
def peoples(name,age,gender,sport):
    def do(people):
        print('%s like %s' % (people['name'],people['sport']))
    def sex(people):
        print('%s is a %s' % (people['name'],people['gender']))
    def init(name,age,gender,sport):
        people={
                'name':name,
                'age':age,
                'gender':gender,
                'sport':sport,
            #行为
                'do':do,
                'sex':sex,
        }
        return people
    res=init(name,age,gender,sport)

    return res

people1=peoples('bob','11','man','soccer')
people1['do'](people1)
people1['sex'](people1)

类:把一类事物的相同的特征和动作整合到一起,是一个抽象的概念。

对象:是基于类创建的一个具体的事物。是特征和动作整合到一起。

例子.创建学校类

特征:name,adder,type

动作:考试,招生,管理

简单版

# -*- coding: utf-8 -*-

def school(name,addr,type):
    def exam():
        print('------考试------')

    def enroll():
        print('------招生------')

    def administration():
        print('------管理------')
    sch={
                'name': name,
                'addr':addr,
                'type':type,
                'exam': exam,
                'enroll': enroll,
                'administration': administration
            }
    return sch
   

school1=school('实验','光明路','公立')

school1['exam']()
school1['enroll']()
school1['administration']()

 进一步加工

# -*- coding: utf-8 -*-

def school(name,addr,type):
    def exam():
        print('------考试------')

    def enroll():
        print('------招生------')

    def administration():
        print('------管理------')
    def intial(name,addr,type):
            sch={
                'name': name,
                'addr':addr,
                'type':type,
                'exam': exam,
                'enroll': enroll,
                'administration': administration
            }
            return sch
    return intial(name,addr,type)


school1=school('实验','光明路','公立')

print(school1)
school1['exam']()
school1['enroll']()
school1['administration']()

 面向对象设计:用面向对象独有的语法class去实现

原文地址:https://www.cnblogs.com/2018-1025/p/11992586.html