面向对象方法与调用

从类名的角度使用类

类名调用类中的属性和方法

注意 类名调用了方法必须穿参 不然报错 类名可以对类中的属性 方法增删改查

class A:
    hoppy='玩'#静态属性
    def __init__(self,name):#双下方法
        self.name=name#属性
    def func(self):#方法
        print(666)
# 1. 查看类中的所有的内容.  类名.__dict__只用于获取类中的全部.
# print(A.__dict__)
# print(A.__dict__['hoppy'])


# 2. 万能的 .点.
print(A.hoppy)  # 查
A.func(1)
A.cloth = '校服'  # 增
# print(A.__dict__)
A.examination = '不考试!'  # 改
# del A.hoppy  # 删
del A.func  # 删
# print(A.__dict__)

实例化对象的过程

1. 利用父类__new__ 在内存中创建一个对象空间.
2. 自动执行__init__方法,并且将对象空间传给self参数.
3. 执行__init__方法里面的代码,给对象空间封装其属性.

从对象的角度使用类

对象调用对象的属性和方法

对象可以操作对象空间的属性 万能的点 进行增删改查

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):
        print('家庭作业')

mc_sq = Student('骚强',18,'高端会所')  # 类名() 过程就叫做实例化过程,实例化一个对象
mc_sq.age = '29'  # 增
del mc_sq.n  # 删
mc_sq.sex = '女'# 改
print(mc_sq.n)  # 查
print(mc_sq.__dict__)

# 对象查看类中的属性.
# mc_sq = Student('骚强',18,'高端会所')
# # print(mc_sq.daily)
# mc_sq.daily = '骚麦'
# print(mc_sq.daily)
# print(mc_sq.__dict__)
# 对象调用类中的方法
mc_sq.homework()

对象查看类中的属性.但是不可以修改

面向对象中的self是什么

什么是self?
# self 就是类中方法的第一个位置参数,
#  如果通过对象执行此方法,解释器就自动的将此对象空间当做实参传给self.
# 约定俗称: 类中的方法第一个参数一般都设置成self.

# 一个类可以实例化多个对象
无数个

从空间角度研究类

1.类外面可以给对象封装属性
2.类内部封装属性
3.对象如果修改 父类属性 其实就是给自己空间增加这个属性

引用方式的路径

对象如果查询一个属性: 对象空间  ----> 类空间 ----> 父类空间  --->
类查询一个属性: 类空间  ----> 父类空间  ---->

单向不可逆
对象与对象之间原则上互相独立(除去组合这种特殊的关系之外).
posted @ 2020-02-29 22:10  一起奥利给  阅读(508)  评论(0编辑  收藏  举报