# 面向过程 vs 函数
# 面向过程编程
# s1 = 'fdjskfldjsfl'
# count = 0
# for i in s1:
# count += 1
# print(count)
# l1 = [i for i in range(100)]
# count = 0
# for i in l1:
# count += 1
# print(count)
#1,重复代码多
#2,可读性差.
# 面向过程编程
# s1 = 'fdjskfldjsfl'
# count = 0
# for i in s1:
# count += 1
# print(count)
# l1 = [i for i in range(100)]
# count = 0
# for i in l1:
# count += 1
# print(count)
#1,重复代码多
#2,可读性差.
# 函数
# def func(obj):
# count = 0
# for i in obj:
# count += 1
# print(count)
# func('fdkslfjdkls')
# func([i for i in range(100)])
# def func(obj):
# count = 0
# for i in obj:
# count += 1
# print(count)
# func('fdkslfjdkls')
# func([i for i in range(100)])
# 函数式编程 vs 面向对象编程
# def login():
# pass
#
# def register():
# pass
#
# def check_account():
# pass
#
# def save():
# pass
#
# def transfer():
# pass
#
# def check_flow_account():
# pass
#
#
#
# def shopping():
# pass
#
# def check_paid_goods():
# pass
#
# def check_unpaid_goods():
# pass
# pass
#
# def register():
# pass
#
# def check_account():
# pass
#
# def save():
# pass
#
# def transfer():
# pass
#
# def check_flow_account():
# pass
#
#
#
# def shopping():
# pass
#
# def check_paid_goods():
# pass
#
# def check_unpaid_goods():
# pass
# 面向对象
class Auth:
def login(self):
pass
class Auth:
def login(self):
pass
def register(self):
pass
pass
def check_username(self):
pass
pass
def check_password(self):
pass
pass
class Account:
def check_account():
pass
def check_account():
pass
def save():
pass
pass
def transfer():
pass
pass
def check_flow_account():
pass
pass
class Shopping:
def shopping_car():
pass
def check_paid_goods():
pass
pass
def check_unpaid_goods():
pass
pass
# 面向对象第一个优点: 类是一组相似功能的集合,让我代码的组织结构更加清晰规范化.
# 类,对象.
# 什么是类, 可加油,可直行,可后退,可拐弯,在路上行驶: 汽车.
# 类是具似相同功能和属性的一类实物.
# 什么是对象?
# 对象是类的具体体现,具体到一个.
# 类是具似相同功能和属性的一类实物.
# 什么是对象?
# 对象是类的具体体现,具体到一个.
# 面向对象的第二优点: 上帝的思维,用面向对象设计程序,
# 类是一个公共模板,对象去操作使用这个公共模板(慢慢体会).
# 类是一个公共模板,对象去操作使用这个公共模板(慢慢体会).
# 类的结构:
# class Human:
# """
# 此类是构建一个人类
# """
# # 第一部分: 静态属性,属性,变量,静态字段
# mind = '有思想'
# language = '会使用语言'
# shape_list = ['四肢','五官','头']
#
# # 第二部分: 动态属性 方法 函数
# def work(self):
# print('人类都会工作')
#
# def eat(self):
# print('人类都需要吃饭')
# """
# 此类是构建一个人类
# """
# # 第一部分: 静态属性,属性,变量,静态字段
# mind = '有思想'
# language = '会使用语言'
# shape_list = ['四肢','五官','头']
#
# # 第二部分: 动态属性 方法 函数
# def work(self):
# print('人类都会工作')
#
# def eat(self):
# print('人类都需要吃饭')
# 如何使用?
# 类名 类的名字
# 一,静态属性
# 1,查看类中的 所有 内容 类名.__dict__
# print(Human.__dict__)
# print(Human.__dict__['mind'])
# Human.__dict__['language'] = None
# print(Human.__dict__['language'])
# 使用 __dict__只是查询类中的所有内容,不能增删改类中的内容,尽量不要查询单个属性.
# 2,万能的点 . 类名. 的方式
# Human.body_hair = '体毛' # 增
# del Human.language # 删
# Human.mind = '无脑的' # 改
# print(Human.shape_list) # 查
# print(Human.__dict__)
# 二, 方法.
# 3, 代码中除去(静态方法,类方法)一般不用类名去执行类中的方法.
# print(Human.work)
# Human.work(123) # 一般不用类名执行类中的方法
# 对象
# class Human:
# mind = '有思想'
# language = '会使用语言'
# shape_list = ['四肢','五官','头']
# def __init__(self):
# # print(666)
# print('__init__中的self:',self)
# def work(self):
# print('人类都会工作')
#
# def eat(self):
# print('人类都需要吃饭')
# # obj = Human() # 实例化过程,实例化一个对象,产生一个对象.
# # print(obj)
# # obj1 = Human()
# # obj2 = Human()
# # obj3 = Human()
# # print(obj1,obj2,obj3)
#
# # 实例化对象 类名() 在内存中开辟一个空间.
# obj = Human()
# print('实例化的对象:',obj)
# 类名 类的名字
# 一,静态属性
# 1,查看类中的 所有 内容 类名.__dict__
# print(Human.__dict__)
# print(Human.__dict__['mind'])
# Human.__dict__['language'] = None
# print(Human.__dict__['language'])
# 使用 __dict__只是查询类中的所有内容,不能增删改类中的内容,尽量不要查询单个属性.
# 2,万能的点 . 类名. 的方式
# Human.body_hair = '体毛' # 增
# del Human.language # 删
# Human.mind = '无脑的' # 改
# print(Human.shape_list) # 查
# print(Human.__dict__)
# 二, 方法.
# 3, 代码中除去(静态方法,类方法)一般不用类名去执行类中的方法.
# print(Human.work)
# Human.work(123) # 一般不用类名执行类中的方法
# 对象
# class Human:
# mind = '有思想'
# language = '会使用语言'
# shape_list = ['四肢','五官','头']
# def __init__(self):
# # print(666)
# print('__init__中的self:',self)
# def work(self):
# print('人类都会工作')
#
# def eat(self):
# print('人类都需要吃饭')
# # obj = Human() # 实例化过程,实例化一个对象,产生一个对象.
# # print(obj)
# # obj1 = Human()
# # obj2 = Human()
# # obj3 = Human()
# # print(obj1,obj2,obj3)
#
# # 实例化对象 类名() 在内存中开辟一个空间.
# obj = Human()
# print('实例化的对象:',obj)
# def func(self):
# # print(self)
# self()
# def func1():
# print(666)
# # print(func1)
# func(func1)
# # print(self)
# self()
# def func1():
# print(666)
# # print(func1)
# func(func1)
# class Human:
# mind = '有思想'
# language = '会使用语言'
# shape_list = ['四肢','五官','头']
# def __init__(self):
# # print(666)
# # print('__init__中的self:',self)
# self.n = 'alex'
# self.s = '男'
# def work(self):
# print('人类都会工作')
#
# def eat(self):
# print('人类都需要吃饭')
# obj = Human() # 实例化过程,实例化一个对象,产生一个对象.
# # obj.name = 'alex'
# # print(Human().__dict__)
class Human:
mind = '有思想'
language = '会使用语言'
shape_list = ['四肢','五官','头']
def __init__(self,name,age,sex):
# print(666)
# print('__init__中的self:',self)
self.n = name
self.s = sex
self.a = age
def work(self):
print('人类都会工作')
print('人类都会工作')
def eat(self):
self.weight = 200
print('人类都需要吃饭')
# lange = Human('兰哥',18,'女') # 实例化过程,实例化一个对象,产生一个对象.
# print(lange.__dict__)
'''
实例化对象(Human())发生三步:
1,在内存中开辟一个对象空间.
2,自动执行__init__方法,并将对象空间传给self.
3,执行__init__的代码,给对象空间封装属性.
'''
# 对象的角度操作对象,类.
# lange = Human('兰哥', 18, '女') # 实例化过程,实例化一个对象,产生一个对象.
# 1,对象查看对象空间的所有属性.
# print(lange.__dict__)
# 不建议用__dict__增删改对象的属性
# lange.__dict__['n'] = '太白'
# del lange.__dict__['n']
# 2,对象操作对象空间的属性. 万能的点 .
# lange.height = 180 # 增
# del lange.n # 删
# lange.s = '男'
# print(lange.a)
# print(lange.__dict__)
self.weight = 200
print('人类都需要吃饭')
# lange = Human('兰哥',18,'女') # 实例化过程,实例化一个对象,产生一个对象.
# print(lange.__dict__)
'''
实例化对象(Human())发生三步:
1,在内存中开辟一个对象空间.
2,自动执行__init__方法,并将对象空间传给self.
3,执行__init__的代码,给对象空间封装属性.
'''
# 对象的角度操作对象,类.
# lange = Human('兰哥', 18, '女') # 实例化过程,实例化一个对象,产生一个对象.
# 1,对象查看对象空间的所有属性.
# print(lange.__dict__)
# 不建议用__dict__增删改对象的属性
# lange.__dict__['n'] = '太白'
# del lange.__dict__['n']
# 2,对象操作对象空间的属性. 万能的点 .
# lange.height = 180 # 增
# del lange.n # 删
# lange.s = '男'
# print(lange.a)
# print(lange.__dict__)
# print(lange.__dict__)
# 3,对象查看类中的静态属性,只能查看!!!
# print(lange.mind)
# lange.mind = '无脑' # 给对象空间添加一个属性 mind = '无脑'
# print(lange.mind)
# print(Human.mind)
# 3,对象查看类中的静态属性,只能查看!!!
# print(lange.mind)
# lange.mind = '无脑' # 给对象空间添加一个属性 mind = '无脑'
# print(lange.mind)
# print(Human.mind)
# 4 ,对象调用类中的方法.
cockroach = Human('小强',27,'laddyboy')
# print(cockroach.eat())
# print(cockroach.__dict__)
# print(cockroach)
# cockroach.eat()
# print(cockroach.__dict__)
# 只要对象执行类中的方法,就会将对象空间自动创给方法的第一个参数 self
cockroach = Human('小强',27,'laddyboy')
# print(cockroach.eat())
# print(cockroach.__dict__)
# print(cockroach)
# cockroach.eat()
# print(cockroach.__dict__)
# 只要对象执行类中的方法,就会将对象空间自动创给方法的第一个参数 self
# self 类中的所有方法(类方法,静态方法)的第一个参数,都会默认接0受对象空间,所以为了方便,区分第一个参数约定俗成成为self.
# 一个类可以实例化多个对象
class Human:
mind = '有思想'
language = '会使用语言'
shape_list = ['四肢','五官','头']
def __init__(self,name,age,sex):
# print(666)
# print('__init__中的self:',self)
self.n = name
self.s = sex
self.a = age
mind = '有思想'
language = '会使用语言'
shape_list = ['四肢','五官','头']
def __init__(self,name,age,sex):
# print(666)
# print('__init__中的self:',self)
self.n = name
self.s = sex
self.a = age
def work(self):
print('人类都会工作')
print('人类都会工作')
def eat(self):
self.weight = 200
print('人类都需要吃饭')
obj1 = Human('小强',27,'男')
obj2 = Human('静哥',18,'女')
obj3 = Human('龙哥',18,'男')
print(obj1.__dict__)
print(obj2.__dict__)
print(obj3.__dict__)
self.weight = 200
print('人类都需要吃饭')
obj1 = Human('小强',27,'男')
obj2 = Human('静哥',18,'女')
obj3 = Human('龙哥',18,'男')
print(obj1.__dict__)
print(obj2.__dict__)
print(obj3.__dict__)