面向对象的初识与结构
def login():
pass
def register():
pass
def save():
pass
def transfer():
pass
def check_bill():
pass
def shopping():
pass
def shopping2():
pass
class Auth:
def login(self):
pass
def register(self):
pass
class Bankcard:
def save(self):
pass
def transfer(self):
pass
def check_bill(self):
pass
class Shop:
def shopping(self):
pass
def shopping2(self):
pass
类是相似功能的集合体.
类 你要站在上帝的角度去考虑问题.
类: 具有相似功能和特性的一类事物.
对象:类的具体体现.
一定要有宏观的概念,区分类与对象.
类的第二个优点: 你要站在上帝的角度去考虑,类一个公共模板,对象是从这个公共的模板产出的.
结构上分析:
class Student:
daily = '学习'
examination = '考试'
def work(self):
print('每天要上课')
def homework(self):
print('家庭作业')
Human 类名要具有描述性,类名首字母大写,类名不宜用_
从类名的角度分析类
class Student:
"""
此类是构建学生类
"""
daily = '学习'
examination = '考试'
def work(self):
print('每天要上课')
def homework(self):
print('家庭作业')
类名的角度调用类中的属性.
1. 查看类中的所有的内容. 类名.__dict__只用于获取类中的全部.
print(Student.__dict__)
print(Student.__dict__['daily'])
2. 万能的 .点.
print(Student.daily) # 查
Student.cloth = '校服' # 增
print(Student.__dict__)
Student.examination = '不考试!' # 改
print(Student.examination)
del Student.daily # 删
print(Student.__dict__)
一般类中的属性都是通过类名.的方式去操控的.
类名的角度调用类中的方法.(一般类中的方法(除去类方法,静态方法外)不通过类名调用)
Student.work(5565) # 工作中不用类名调用
从对象的角度分析类
class Student:
"""
此类是构建学生类
"""
daily = '学习'
examination = '考试'
def __init__(self,n,a,h):
# self.n = '小黑'
# self.sex = '随便'
self.name = n
self.age = a
self.hobby = h
def work(self,c):
# self.color = '绿色'
self.color = c
print(f'{self.name}每天要上课')
def homework(self):
# 利用self 对象空间,为所欲为
print('家庭作业')
obj = Student() # 类名() 过程就叫做实例化过程,实例化一个对象
print(obj) # 对象,实例
obj1 = Student()
print(obj1)
obj = Student()
print(obj)
实例化一个对象时发生了三件事:
1. 在内存中创建一个对象空间.
2. 自动执行__init__方法,并且将对象空间传给self参数.
3. 执行__init__方法里面的代码,给对象空间封装其属性.
从对象角度研究类:
对象操作对象里面的属性.
obj = Student()
print(obj)
对象查看全部属性
print(obj.__dict__)
对象可以操作对象空间的属性 万能的点
obj = Student()
# obj.age = '29' # 增
# del obj.n # 删
# obj.sex = '女'# 改
print(obj.n) # 查
print(obj.__dict__)
liye = Student('小黑',21,'洗头')
mc_sq = Student('骚强',18,'高端会所')
print(liye.__dict__)
print(mc_sq.__dict__)
对象查看类中的属性.
mc_sq = Student('骚强',18,'高端会所')
# print(mc_sq.daily)
mc_sq.daily = '骚麦'
print(mc_sq.daily)
print(mc_sq.__dict__)
对象调用类中的方法
liye = Student('小黑',21,'洗头')
print(liye.__dict__)
liye.work()
liye.work('绿油油')
print(liye.__dict__)