面向对象初识

## 类: 具备相同属性和技能的一类事物
##研究面向对象 : 要站在上帝的角度去研究问题

class Person: ##class 关键字,类名
level = '高级动物' #----
mind = '有思想' # |------第一部分, 静态变量,静态字段
language = '语言' #----

def work(self): #-------
pass # |
def eat(self): # |------第二部分: 动态方法,函数
pass # ------

##类名:
##1. 类名查看类中 全部的变量(字段),方法(函数):
print(Person.__dict__)
##2. 类名对静态变量(静态字段)进行操做 最好不要经过__dict__字典进行操做
print(Person.__dict__['mind']) #能够查值

Person.__dict__['create']='有创造力' #不能增长值

#小总结: 查询类里面全部的变量及方法,用Person.__dict__
#(增删改) 查询单个变量,不要用 Person.__dict__

print(Person.mind) #可查询

Person.create = '有创造力的' #可增长

del Person.mind #可删除

Person.mind = '行尸走肉' #可修改

##实例化对象
aduan = Person() #过程就叫作实例化一个对象

#1. 类名+():自动执行类中的 __init__方法
# ① 产生一个对象空间
# ②自动执行类中的__init__方法,并将对象空间传给self
# ③执行init方法给对象封装属性,并将完善好的这个对象返回给 类名()


#对象!!!!!!!
#1.查找对象中的全部属性
# ①aduan = Person(~~~~~)
#②print(aduan.__dict__)
#2. 对象才最对象的属性
#print(aduan.name) #查
#aduan.job = 'student' #增
#print(aduan.__dict__)
#del aduan.age #删
#print(aduan.__dict__)
#aduan.sex = 'laddyboy'
#print(aduan.__dict__) #改

# 3.对象操做类中的静态变量(静态字段)[只能查询不能增删改]
#aduan.level #能够查类中的字段
#aduan.level = '中等动物' #对象中设置新属性而不是改变类中的level

#4 对象执行类中的方法
#aying = Person()
#aying.work

#一: self 位置参数,默认通常接收的是对象空间 约定俗成叫self
# 二 : 在类的 非__init__方法中,也能够给对象添加一些属性,前提必须先执行这个方法

##类名称空间## __init__执行后  对象里面不是没有东西的,对象里是存在类对象指针的##查询顺序:##对象的查询顺序:先从对象空间去找,对象的空间没有此变量或者方法,经过对象中的类对象指针去类中寻找## 类的查询顺序: 直接从类自己查找##对象的问题:##不管建立多少对象,都是开辟独立的空间,各个对象之间不能互相查找,干扰
相关文章
相关标签/搜索