1.0---面向对象的概念
.
类: 具有相同属性和技能的一类事物; (人类就可以作包含了多个对象(人)的类)
对象: 具体类的表现,具体到个体,实实在在的一个实例; (高小波是一个人,就是人类中实实在在的个体)
为什么要学习类,对象: 可以将代码形成一个个代码块,这些代码块可以进行相互间的操作(类间的继承,对象对类的操作),有利于代码的规范和引用
.
2.0---类的格式
.
类体: 包括俩部分 变量部分(静态变量) ,方法(函数)部分(普通函数,构造方法)
class Person: # Person 类名
name='有名字' # 静态变量,(也叫静态字段)
animal='高级动物'
faith='有信仰'
def work(self): # 方法(函数)
print('有没有工作')
def house(self):
print(self)
print('有没有房子')
.
3.0---面向对象的操作
.
对类的操作可以从俩个角度来讲:通过类名对类进行操作,通过对象对类进行操作
从类名的角度:
.
a.-- dict
Person.dict 操作 查询类中的所有内容;不能进行增删改操作
b.--万能的 . (可实现增删改查)
print(Person.name) # 查
Person.age=25 # 增 在类的函数中也可以操作
Person.name='高波' # 改
del Person.animal # 删
操作类中的方法(在工作中基本不用)
Person.work(11)
.
从对象的角度
class Person:
name='有名字' # 静态变量,或者是静态字段
animal='高级动物'
faith='有信仰'
def __init__(self,name,age,sex,hobby): # 构造方法(每个类都要有构造方法)
self.name=name
self.age=age
self.sex=sex
self.hobby=hobby # 给对象封装相应的属性(变量,可控);
def work(self):
print('有没有工作')
def house(self):
print(self)
print('有没有房子')
ret=Person('高波',25,'boy','不知道')
默认将Person的空间地址传给self,其他得参数会依次传入
#1, 类名+()产生一个实例(对象,对象空间.)
#2, 自动执行类中的init方法,将对象空间传给init的self参数,
#3, 给对象封装相应的属性(变量). 可控的
自动执行类中的init方法,将对象空间传给init的self参数,
Person() # 类名+() 的这个过程:实例化的过程(创建一个对象的过程)
Person() 实例化对象,实例,对象
a.--操作对象中的静态变量
1.0 dict 查询对象中的所有内容
2.0 万能的 .
print(ret.name)
ret.hith=1.68
del ret.hobby
ret.name='高小波'
print(ret.__dict__)
b.--对象操作类中的静态变量
print(ret.name) # 如果对象中有就会先查询对象中的,没有的得话,向上一步查询类中的
print(ret.faith)
c.--对象操作类中的方法 (工作中,通过对象)
ret.work()
ret.house()