• 面向对象的编程----类和对象的理解


    创建一个狗, 狗就是对象,他有两个方面

    1。狗的特征:名字 性别 品种的等

           dog1 = {
                'name': 'wangcai',
                'gender': '',
                'type_': '藏獒',
                    }
                            

    2。狗的能力:会坐,会跑,会叫,会咬等  --可以用函数表示一种能力

        def sit(dog1):
            print('一条狗{%s},坐在地上' % dog1['name'])
    
        def run(dog1):
            print('一条狗{%s}正在跑' % dog1['type_'])

    狗的特征和功能是分开的, 如何让他们之间建立联系呢? -- 一种方法就是在字典中加上

            dog1 = {
                'name': name,
                'gender': gender,
                'type_': type_,
                'sit':sit,
                'run': run
            }

    就这样一条狗的特征和功能统一在一个字典中了。

       # 狗的功能 
        def sit(dog1):
            print('一条狗{%s},坐在地上' % dog1['name'])
    
        def run(dog1):
            print('一条狗{%s}正在跑' % dog1['type_'])
    
        
        #狗的特征
            dog1 = {
                'name': name,
                'gender': gender,
                'type_': type_,
                'sit': sit,
                'run':run
            }
      

    最后可以用一个函数把这个功能和特征包起来, 避免被随便调用

    def dog():
       # 狗的功能 
        def sit(dog1):
            print('一条狗{%s},坐在地上' % dog1['name'])
    
        def run(dog1):
            print('一条狗{%s}正在跑' % dog1['type_'])
    
        
        #狗的特征
            dog1 = {
                'name': name,
                'gender': gender,
                'type_': type_,
                'sit': sit,
                'run': run
            }
        return dog1

    调用里面的特征和功能, 还是需要通过return返回给到我们

     再进一步改善, 把字典内容也函数化

    def dog(name,gender,type_):
    # 狗的功能 
        def sit(dog1):
            print('一条狗{%s},坐在地上' % dog1['name'])
    
        def run(dog1):
            print('一条狗{%s}正在跑' % dog1['type_'])
    
        
        #狗的特征
        def init(name,gender,type_)
           dog1 = {
                'name': name,
                'gender': gender,
                'type_': type_,
                'sit': sit,
                'run':run
            }
           return dog1
        return  init(name,gender,type_)

    整个一个面向对象的编程就完成了

    def dog(name,gender,type_):
    #狗的特征
            
        def init(name,gender,type_)
           dog1 = {
                'name': name,
                'gender': gender,
                'type_': type_,
                'sit': sit,
                'run': run
            }
             return dog1
    
        # 狗的功能 
        def sit(dog1):
            print('一条狗{%s},坐在地上' % dog1['name'])
    
        def run(dog1):
            print('一条狗{%s}正在跑' % dog1['type_'])
    
        
        return  init(name,gender,type_)    

    然后就可以调用了

    d1=dog('旺财','','藏獒')
    d2=dog('狗狗','','猎肠')
    d1['sit'](d1)
    d2['run'](d2)

    整个一个面向对象的编程就完成了

    看上去是否很像类和对象呢?

    class Dog():
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
    
        def sit(self):
            print('一条狗%s,坐在地上' % self.name)
    
        def run(self):
            print('一条狗{%s}正在跑' % self.gender)
    name,gender,type_
  • 相关阅读:
    贪心算法与动态规划
    Linux重要目录结构
    博客园添加目录索引
    冒泡排序&插入排序&其他排序
    Linux下部署自己写的Web项目
    Java算法入门-数组&链表&队列
    Java集合-数据结构之栈、队列、数组、链表和红黑树
    Java集合-单例模式斗地主&Collections类的shuffle方法了解
    什么是反向代理服务器
    Linux信号处理
  • 原文地址:https://www.cnblogs.com/vincent-sh/p/12758356.html
Copyright © 2020-2023  润新知