【Python基础】面向对象的程序设计

Python面向对象的程序设计

一、三大编程范式

1、面向过程编程

2、函数式编程

3、面向对象编程

---> 3大编程思想没有高低之分,只有程序员水平高低之分

二、面向对象设计与面向对象编程

类和对象概念:

#:把一类事物的相同特征(数据属性)和动作(函数属性)整合到一起就是类,类是一个抽象的概念
#
# 对象:就是基于类而创建的一个具体事物,也就是特征和动作整合到一起。对象也有数据属性和函数属性

注意:不是class 写的程序不一定就不是面向对象设计

def dog(name,gender,type):
    # 狗的动作
    def jiao(dog):
        print('一条狗[%s],汪汪汪' % dog['name'])
    def chi_shi(dog):
        print('一条[%s] 正在吃屎' % dog['type'])
    def init(name,gender,type):
        dog1 = {
            'name':name,
            'gender': gender,
            'type': type,
            'jiao':jiao,
            'chi_shi':chi_shi,
        }
        return dog1
    return init(name,gender,type)

d1=dog('元昊','','中华田园犬')
d2=dog('alex','','藏敖')
print(d1)
print(d2)
d1['jiao'](d1)
d2['chi_shi'](d2)
def 定义的面向对象设计

三、类和对象

class Chinese:      #定义类
    country="china"
    def __init__(self,name):
        self.name = name

    def play_ball(self,ball):
        print("%s正在打%s"%(self.name,ball))

p1 = Chinese("张三")          #Chinese("张三") 实例化--->产生对象 p1
print(p1.__dict__)      ##查看对象p1的属性字典
print(Chinese.__dict__)     #查看类Chinese的属性字典
##打印结果:
{'name': '张三'} {'__module__': '__main__', 'country': 'china', '__init__': <function Chinese.__init__ at 0x00000243E0E2C7B8>, 'play_ball': <f

注意:实例调用类的方法 不用传入第一个参数 self ,Python内部自动帮我们传入self 参数

p1.play_ball("篮球")        #

类调用类的方法 需要传入参数

##类调用类方法 需要传入self参数
Chinese.play_ball(p1,'篮球')      #张三正在打篮球

##另一种方式--->相当于实例调用类方法 p1.play_ball('篮球')
Chinese("张三").play_ball('篮球')   #张三正在打篮球

猜你喜欢

转载自www.cnblogs.com/XJT2018/p/10879473.html