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

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

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():
   # 狗的功能 
    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():
    #狗的特征
        
    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)

猜你喜欢

转载自www.cnblogs.com/vincent-sh/p/12758356.html