面向对象

Posted 噼里啪啦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象相关的知识,希望对你有一定的参考价值。

类:就是把相同的事物的动作和特征整合到一起

  类是一个抽象的。

对象:基于类创建的一个具体的事物,

   也是特征和动作整合一起的

#最初始的写法
people = {
    ‘name‘: ‘奥巴马‘,
    ‘gender‘: ‘男‘,
    ‘age‘: ‘50‘,
}

def ment1(people):
    print(‘这个叫【%s】的人,正在跑步‘%people[‘name‘])
def ment2(people):
    print(‘这个叫【%s】,今年【%s】岁的【%s】人,吃饭‘%(people[‘name‘],
                                      people[‘age‘],people[‘gender‘]))

ment1(people)
ment2(people)

  

#使用函数去编写面向对象。
def peo():

    def ment1(people):
        print(‘这个叫【%s】的人,正在跑步‘%people[‘name‘])
    def ment2(people):
        print(‘这个叫【%s】,今年【%s】岁的【%s】人,吃饭‘%(people[‘name‘],
                                          people[‘age‘],people[‘gender‘]))
    people = {
        ‘name‘: ‘奥巴马‘,
        ‘gender‘: ‘男‘,
        ‘age‘: ‘50‘,
        ‘run‘:ment1,
        ‘ect‘:ment2,
    }
    return people

f = peo()
f[‘run‘](peo())

 

#使用函数去编写面向对象。优化版
# def peo(name,gender,age):
#     #要做的事:
#     def ment1(people):
#         print(‘这个叫【%s】的人,正在跑步‘%people[‘name‘])
#     def ment2(people):
#         print(‘这个叫【%s】,今年【%s】岁的【%s】人,吃饭‘%(people[‘name‘],
#                                           people[‘age‘],people[‘gender‘]))
#     #将定义的字典,写入函数中
#     def init(name,gender,age):
#         people = {
#             ‘name‘: name,
#             ‘gender‘: gender,
#             ‘age‘: age,
#             ‘run‘: ment1,
#             ‘ect‘: ment2,
#         }
#         return people   #返回字典
#     res = init(name,gender,age)  #返回字典的这个函数
#     return res
# f = peo(‘奥巴马‘,‘男‘,‘20‘)  #这个返回值是init(name,gender,age)
# f1 = peo(‘奥巴马‘,‘男‘,‘20‘)
# #f[‘run‘](f):调用的是ment1这个函数,因为他有一个参数,
# # 就是people,,这个字典,所以()中要跟一个参数就是peo(‘奥巴马‘,‘男‘,‘20‘)的返回值
# f[‘run‘](f)
# f[‘ect‘](f1)

 

PS.  

 面向对象编程,和程序设计面向对象 ,是没有关系的

  面向对象编程,是使用class类来进行编程的

  程序设计面向对象:是使用def()来编程的

 

以上是关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

Scala的面向对象与函数编程

Python面向对象学习之八,装饰器