两大类编程思维面向过程面向过程面向对象区别比较简单,线性思维可以用来解决比较复杂的事情,简单的线性思维解决不了共同点对象——面向和面向过程都是解决实际问题的一种方式这种思维方式得出的结论是两者相辅相成,并不对立。解决复杂问题,面向对象的方法方便我们从宏观上把握事物之间的复杂关系,便于我们分析整个系统;涉及到微操作,我们还是采用面向过程的方式来处理。类和对象类的定义是一组相似事物的总称。它可以帮助我们快速认识和判断事物的本质。数据类型不同的数据类型属于不同的类。类创建创建语法类名:由一个或多个单词组成,每个单词首字母大写,其余小写。class类名:属性方法类组合类属性实例方法静态方法类方法代码示例:classStudent:native_place='Beijing'#类属性def__init__(self,name,age):#name,age是实例属性self.name=nameself.age=age#实例方法definfo(self):print('mynameis',self.name,',ageis',self.age)#类方法@classmethoddefcm(cls):print('classmethod')#staticmethod@staticmethoddefsm():print('staticmethod')对象100、66、555都是int类中包含的不同case,这些case的专业术语叫做实例或对象。Python中的一切都是对象。对象的创建也称为类的实例化。Syntax:instancename=classname()stu=Student('allin',20)print(stu.name)#allinstu.info()#我的名字是allin,我的年龄是20Student.cm()#ClassmethodStudent.sm()#staticmethodStudent.info(stu)#我叫allin,我的年龄是20岁,只有有实例才能调用类中的内容。调用类中的方法:对象。方法名();班级名称。方法名称(对象实例)。类属性类中方法之外的变量称为类属性,由类的所有对象共享。stu1=Student('Alun',20)stu2=Student('Bill',24)print(stu1.native_place)#北京print(stu2.native_place)#北京Student.native_place='天津'print(stu1.native_place)#Tianjinprint(stu2.native_place)#天津类方法使用@classmethod修饰的方法和类名直接访问的方法。静态方法是使用@staticmethod修饰的方法和使用类名直接访问的方法。对象的属性和方法的动态绑定Python是一种动态语言。创建对象实例后,可以动态绑定属性和方法。defshow():print('Iamafunction')stu1=Student('Alun',20)stu1.gender='male'#动态绑定属性stu2=Student('Bill',24)print(stu1.name,stu1.age,stu1.gender)#Alun20malestu1.show=show#动态绑定方法stu1.show()#我是函数stu2.show()#AttributeError:'Student'objecthasnoattribute'show'def代码块:类内一个方法,类外一个函数。一个类可以创建无数个实例对象,实例对象的属性值可以不同。为对象实例动态绑定的属性和方法不会影响类和其他实例,只作用于自身。
