面向对象
2019-11-30

面向对象

标签(空格分隔): 面向对象


面向对象:

类:

任何事物归为一类,就是一系列相似特征与技能的结合体;

强调:站在不同的角度得到的分类是不一样的;

对象和类:

在现实世界中:先有对象,后有总结出来的类在程序中:先有类,然后调用类来产生对象;

类就相当于模版,然后才造对象;例如:王二丫:特征:--------学校:--------名字:--------性别:--------年龄:技能:--------吃饭:--------学习:--------睡觉:李三:特征:--------学校:--------名字:--------性别:--------年龄:技能:--------吃饭:--------学习:--------睡觉:相似的特征:学习,吃饭,睡觉

so:先定义类:

#先定义类class Student: schoole="home" #功能---用方法表示 def learn(self): print("learn") def sleep(self): print("sleep") def eat(self): print("eat")#产生对象,最终程序的运行就是对象调用的;stu1=Student()#实例化对象stu2=Student()

如何使用类:

类和函数的区别,类在定义的时候,就会就会被执行,但是函数只有在调用的时候,才会被执行;

在内存里面,执行类的时候,会有一个名称空间来存放类的名称空间;查看类的名称空间:

print(Student.__dict__)

类是一系列对象相似的特证与技能的集合:特征在程序中用:变量表示,技能用函数表示:类的内部无非就是变量的定义与函数的定义,但是python不限制,写其他的代码在类里面;

类的用法:无非就是一些名字,技能,针对这些东西,进行增删改查,就是通过类的名称空间来进行这些操作:如下代码:

class Student: schoole="home" #功能---用方法表示 def learn(self): print("learn") def sleep(self): print("sleep") def eat(self): print("eat")print(Student.__dict__["school"])print(Student.__dict__["eat"])

如何使用对象:

如上图的代码:stu1,就是一个实例化的对象,这个对象有个两个功能,学习,吃饭,属相是同一个学校;

但是特殊的对象怎么办?就是有些对象有个性化的设置:__init__用来为对象定义对象独有的特征;

class luffStudent: school="luffcity" def __init__(self,name,age,sex): self.Name=name self.Age=age self.Sex=sex def learn(self): print("is learning") def eat(self): print("is sleeping")stu1=LuffyStudent()

按照上述代码执行:结果会报错:这里用户会很懵逼:明明我们只是创建了一个类而已,并没有调用__init__方法,以上错误说明,是python自己调用,就是在你实例化的时候,就会调用这个方法,

针对上述的代码:我们进行修改为:stu1=LuffyStudent("wang","nv","45")

在次执行上述代码,不会报错了;

现在有__init__方法的时候,在实例化的时候:1.先产生一个对象,2.触发__init__会返回类的函数属性,里面有几个参数传几个参数,其实self就是LuffyStudent()空对象而已;然后self就是这个空对象,他会当做第一个参数传给__init__,3.然后传:"wang","nv","45"访问属性:print(stu1.Name)同样我们可以对属性进行增删改查:, 1, 0, 9);