面向对象
类:就是具有一类特点相似性的一切事物
对象:就是从类具体到,具体的一个东西
想定义什么,就定义什么 我就是上帝
class Human:
mind='思想'
shpe='信仰'
def __init__(self,name,age,hobby):
self.n=name
self.a=age
self.h=hobby
print('init')
def work(self,a,b):
c=a + b
# print(c)
print('你的名字%s' %self.n)
return c
def walk(self):
print('%s岁可以打篮球' %self.a)
rtt=ret.work(1,2)
print(rtt)
ret.work(1,2)
ret.walk()
类
print(Human.mind) #通过类名找静态的量
Human.mind='大哥' #通过类名去改静态变量
Human.hope='希望' #通过类名去增加静态变量 ,加在__dict__后边
Human.__dict__ #只能去查Human类中的所有内容
__dict__的功能一般只用查所有,其它的都不用
print(Human.__dict__['mind']) #类名__dict__里边去找单个的
Human.__dict__['mind']='没有' #是不能去改的 会报错
print(Human.__dict__)
Human.work(1,2,3) #通过类直接点 类中的方法 是需要传变量的,而且,括号的slfe
也得传一个给他,不在是生成对象的内存地址,一般不用
对象
print(ret.mind)#通过对象,点 类的静态变量
ret.mind='fdf'#通过对象,点 类的静态变量 是改变不了类的变量,只能是在对象里,封装了一个mind:faf 的键值对
print(ret.__dict__)
对象,在对类的方法调用时,方法里边的第一个变量就是,生成对象的内存地址,,后边的变量的需要一一去传值,并且可以在方法里边去用
生成俩个对象的关系
ret1=Human('大华',18,'唱歌')
ret2=Human('大明',12,'跳舞')
ret2.work(ret1) #可以把对象1作为参数传到work里边 而work里边的slef就是ret2
ret.a ret点查看 改变都可以