1.面向过程: ------ 函数 --- 功能 2.面向对象: ------ 类 ------------面向对象 (object-oriented ;简称: OO) 至今还没有统一的概念 我这里把它定义为: 按人们 认识客观世界的系统思维方式,采用基于对象(实体) 的概念建立模型, 模拟客观世界分析、设 计、实现软件的办法。 ------ 程序是由数据和功能组合而成的对象构建起来的 买电脑: ------ 面向过程:----- 需求 ---- 电脑商城 -- 筛选电脑 --- 测试性能 ---- 砍价 ---- 成交 ------ 面向对象:----- 需求 ---- 电脑高手(对象 ---- 功能组合而成 ) 人类 ----- 男人, 女人 3. 面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近 相似的操作逻辑 和 操作 应用数据、状态,-------- 以类的形式描述出来, ------ 以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。 4. 类 ----- class 类是抽象的, 是具有相同特征或行为的事物统称 5. 类的定义 class 类名(): 代码业务逻辑 6. 类名的定义: 与函数命名方法一样 驼峰命名法 ---- 单词首字母大写 class Person(): print('人类')
7. 如何调用类 ---- 实例化 实例化 ------ 对象(实例化对象)
class Example_F():
print('ok')
#实例化,实例化会触发这个类,不是真正的调用
a = Example_F()
print(a)#<__main__.Example_F object at 0x000002E81F73CA48>
b = Example_F()
print(b)#<__main__.Example_F object at 0x0000020B67CEEC48>
#两次实例化出来的对象是不同的
print(type(a))#<class '__main__.Example_F'>
8.类的属性 ------- 类的属性就像人拥有独特的特征(属性) 实例化时 ---- 实例对象会获取到这个类的所有属性 ----- 变成了 实例对象的属性
class Example_S():
name = 'ye'
a = Example_S()
print(a.name)#ye
b = Example_S()
print(b.name)#ye
#在实例化的时候会获取这个类的所有属性
9.实例对象的属性 每个类的属性相互独立,互不干扰
class Example_S():
name = 'ye'
a = Example_S()
a.name = 1
a.second = 'ok'
print(a.name)#1
print(dir(a))
#dir查看类的所有属性
b = Example_S()
b.second = 'yes'
print(b.name)#ye
print(dir(b))
print(b.second)
10.类与实例之间的联系 -------- 类 ----- 类是抽象的, 是具有相同特征或行为的事物统称 ---- 不存在 -- 描绘事物共性 -------- 实例 ----- 某个事物的具体的个体 --- 真实存在的 -------- 实例与实例之间互不影响, 都是独立的 11. 私有属性 -------- 只是一种规范, 不是限制 ---------------- _ 外部直接访问 ---------------- __ 外部无法直接访问 可以访问 属性都可以添加或修改
class Person():
name = '人'
_age = 18
__sex = '未知'
laowang = Person()
# print(dir(laowang))
print(dir(Person))
print(laowang.name)
print(laowang._age)
# print(laowang.__sex)
print(laowang._Person__sex)#间接访问
#
12. 类的方法 ---- 类的方法就像人的动作(方法) 实现某个功能 类的方法也可以传参 可以在方法里面调用实例对象的属性
class Person():
def habit(self):
print('play ball')
def demo(self,name):
print(self)
print(name)
xiaoming = Person()
xiaoming.habit()#play ball
xiaoming.demo('小明') #小明
# #通过实例化对象获得方法
# class Person():
# def habit(self):
# print('play ball')
# def demo(self):
# print(self.name)
# xiaoming = Person()
# xiaoming.name = '小明'
# xiaoming.demo()#小明
13.初始化方法(在实例化的时候会去触发): __init__() ------ 魔法方法(在特定情况下会去自动触发) --- 构造函数 实例对象本身 ------ self 查看对象的属性及方法 --- dir
13.初始化方法(在实例化的时候会去触发): __init__() ------ 魔法方法(在特定情况下会去自动触发) --- 构造函数