面向对象初识

面向对象
类:就是具有一类特点相似性的一切事物
对象:就是从类具体到,具体的一个东西

想定义什么,就定义什么  我就是上帝
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点查看  改变都可以
原文地址:https://www.cnblogs.com/LMTlmt/p/10311803.html