面上对象初识
类:
1.类:是相似功能的集合体
2.类 是站在上帝的角度 去考虑问题
类: 具有相似功能和特征的一类事物
对象:类的具体体现
需要有宏观的概念,用于区分类与对象
类的结构上分析:
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 = "校服" # 增
Student.examination = '不考试!' # 改 # 无则增 有则改
del Student.daily # 删
# 一般类中的属性都是通过类名 . 的方式去操控的
# 类名的角度调用类中的方法(一般类中的方法(除去类方法,静态方法外)不通过类名调用)
从对象的角度分析类
class Student: # 类名要具有描述性,类名首字母大写,类名不宜用下划线_
'''
此类是构建学生类
'''
daily = '学习'
examination = '考试'
def __init__(self):
print(self) # self的内存地址与obj相同 就等于传obj
print(666)
def work(self):
print('需要上课')
def homework(self):
print('家庭作业')
obj = Student() # 类名() 过程就叫做实例化过程 实例化一个对象
print(obj) # 对象 , 实例 >>>> 666
# 实例化一个对象时发生了三件事:
1. 在内存中创建一个对象空间
2. 自动执行 __init__ 方法并且将对象空间传给self参数
3. 在执行__init__方法里面的代码 给对象空间封装其属性
从对象角度研究类
class Student: # 类名要具有描述性,类名首字母大写,类名不宜用下划线_
'''
此类是构建学生类
'''
daily = '学习'
examination = '考试'
def __init__(self):
self.n = '小黑'
self.sex = '随便'
def work(self):
print('需要上课')
def homework(self):
print('家庭作业')
obj = Student()
print(obj.__dict__) # 对象查看全部属性
# 对象可以操作对象空间的属性 使用 . 的方式
obj = stuednt()
obj.age = '29' # 增
print(obj.__dict__)
del obj.n # 删除
obj.sex = '男' # 改
print(obj.n) # 查
class Student: # 类名要具有描述性,类名首字母大写,类名不宜用下划线_
'''
此类是构建学生类
'''
daily = '学习'
examination = '考试'
def __init__(self,n,a,h):
self.name = n
self.age = a
self.hobby = h
def work(self,c):
self.color = c
print(f'{self.name}需要上课')
def homework(self):
# 利用self 对象空间,为所欲为
print('家庭作业')
xiaohei = Student('小黑','21','洗头')
print(xiaohei.__dict__)
mc_qiangge = Student('骚强','18','高端会所')
print(mc_qiangge.__dict__)
# 对象查看类中给予的属性
qiangge = Student('强哥', '18', '高端会所')
print(qiangge.daliy)
qiangge.daily = '骚麦'
# 对象调用类中给予的方法
xiaohei = Student('小黑','21','洗头')
xiaohei.work('绿油油') >>>> xiaohei需要上课
print(xiaohei.__dict__) >>> # 结果加上了 color:'绿油油'
# self就是类中方法的第一个位置参数; 如果通过对象执行此方法,解释器就会自动的将此对象空间当做实参传给self
# 对象空间是对象的地址 一个内存地址 一块地址
总结:
类与对象的理解
类名去操作类的属性
类名.__dict__
类名.属性名
对象操作对象的属性 和获取类的属性 以及调用类中的方法
实例化对象发生了三件事儿
1.在内存中创建一个对象空间
2.自动执行 __init__
方法并且将对象空间传给self参数
3.在执行__init__
方法里面的代码 给对象空间封装其属性
对象.__dict__
查看全部属性
对象.对象的属性名(增删改查)
对象.类的属性名(获取)
对象.类的方法名 (执行此方法,并将对象空间自动传给self)
self :第一个位置参数