面向对象编程是最有效的软件编写方法之一。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。根据类来创建对象被称为实例化,这让你能够使用类的实例特的个性
一、如何创建和使用类?
语法:
classStudent(Object):passclass类不带参数classDemo:defsetName(self,name):self.name=namedefgetName(self):print("我叫%s,你是谁?"%(self.name))a=Demo()a.setName("小明")a.getName()b=Demo()b.setName("小龙")b.getName()输出结果为"我是小明,你是谁?" “我是小龙,你是谁?”
实例
#定义了一个名为Demo的类classStudent():#__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它#每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法def__init__(self,id,name):#self.id=id获取存储在形参id中的值,并将其存储到变量id中,然后该变量被关联到当前创建的实例#self.name也是一样#python中的self类似于java中的this关键字self.id=idself.name=namedefprint(self):print("idis"+str(self.id)+""+"nameis"+self.name)#打印输出学生信息student=Student(1,'lisa')#创建一个id为1的name为'lisa'学生,传入的值会被self接收,会自动的返回一个学生的实例student.print()#调用Student类中的print()方法
如何创建多个实例
很简单,只需要再传进一个学生就可以
student=Student(1,'lisa')#创建一个id为1的name为'lisa'学生,传入的值会被self接收,会自动的返回一个学生的实例student1=Student(2,'Jhon')student.print()#调用Student类中的print()方法student1.print()
有返回值类型的的类#定义了一个名为Demo的类classStudent():#__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它#每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法def__init__(self,id,name):#self.id=id获取存储在形参id中的值,并将其存储到变量id中,然后该变量被关联到当前创建的实例#self.name也是一样#python中的self类似于java中的this关键字self.id=idself.name=namedefprint(self):student_info=("idis"+str(self.id)+""+"nameis"+self.name)#定义一个student_info来接收一下学生信息returnstudent_info#返回学生信息student=Student(1,'lisa')#创建一个id为1的name为'lisa'学生,传入的值会被self接收,会自动的返回一个学生的实例print(student.print())
修改属性值classStudent():def__init__(self,id,name):self.id=2#指定属性值self.name='张三'#指定属性值defprint(self):student_info=("idis"+str(self.id)+""+"nameis"+self.name)#returnstudent_infostudent=Student(1,'lisa')#如果在__init__函数中指定了属性值,那么在这里传入的值就不会被引用print(student.print())
二、面向对象中的继承
首先先创建一个Student类,如下:
classStudent():#父类def__init__(self,name,course):self.name=nameself.course=coursedefprint(self):student_info=(self.name+""+self.course)returnstudent_info
再创建一个Student_list类
classStudent_list(Student):def__init__(self,name,course):super().__init__(name,course)student_list=Student_list('lisa','math')print(student_list.print())
完整代码:
classStudent():def__init__(self,name,course):self.name=nameself.course=coursedefprint(self):student_info=(self.name+""+self.course)returnstudent_infoclassStudent_list(Student):#定义子类时,必须在括号内指定父类的名称def__init__(self,name,course):#方法__init__()接受创建Student实例所需的信息super().__init__(name,course)#super()是一个特殊函数,可以将将父类和子类关联起来student_list=Student_list('lisa','math')#像平时创建类实例一样print(student_list.print())
重写方法classSuperClass():defget_superclass(self):print("thisisSuperClassmethod")classSubClass(SuperClass):defget_superclass(self):print("thisisSubClassmethod")sub_class=SubClass()sub_class.get_superclass()
正在尝试写博客,如写的不好,请指点一下,谢谢!