两大编程思维

类型面向过程面向对象
区别事物比较简单,可用线性思维解决事物比较复杂,简略的线性思维无奈解决
共同点面向对象和面向过程都是解决理论问题的一种思维形式
总结两者相辅相成,并不是对抗的。
解决简单问题,通过面向对象形式便于咱们从宏观上把握事物之间的简单关系、不便咱们剖析整个零碎;具体到宏观操作,依然应用面向过程的形式来解决。

类与对象

类的定义

多个相似事物组成的群体的统称。
可能帮忙咱们疾速了解和判断事物的性质。

数据类型

不同的数据类型属于不同的类。

类的创立

创立语法
  • 类名:由一个或多个单词组成,每个单词首字母大写,其余小写。
class 类名:    属性    办法
类的组成
  • 类属性
  • 实例办法
  • 静态方法
  • 类办法

代码示例:

class Student:    native_place = '北京'  # 类属性    def __init__(self, name, age):  # name,age为实例属性        self.name = name        self.age = age    # 实例办法    def info(self):        print('我的名字是', self.name, ',年龄是', self.age)    # 类办法    @classmethod    def cm(cls):        print('类办法')    # 静态方法    @staticmethod    def sm():        print('静态方法')

对象

100、66、555都是int类蕴含的不同个例,这些个例的专业术语称为实例或对象。

Python中所有皆对象

对象的创立

对象的创立又称为类的实例化。
语法:实例名 = 类名()

stu = Student('allin', 20)print(stu.name)  # allinstu.info()  # 我的名字是 allin ,年龄是 20Student.cm()  # 类办法Student.sm()  # 静态方法Student.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)  # 天津print(stu2.native_place)  # 天津
类办法

应用@classmethod润饰的办法,应用类名间接拜访的办法。

静态方法

应用@staticmethod润饰的办法,应用类名间接拜访的办法。

动静绑定对象的属性和办法

Python是动静语言,创建对象实例后,能够动静地绑定属性和办法。

def show():    print('我是一个函数')stu1 = Student('Alun', 20)stu1.gender = '男'  # 动静绑定属性stu2 = Student('Bill', 24)print(stu1.name, stu1.age, stu1.gender)  # Alun 20 男stu1.show = show  # 动静绑定办法stu1.show()  # 我是一个函数stu2.show()  # AttributeError: 'Student' object has no attribute 'show'

def代码块:在类的外部为办法,在类的内部为函数。
一个类能够创立无数个实例对象,实例对象的属性值能够不同。
为一个对象实例动静绑定的属性和办法不会影响类及其他的实例,只作用于本身。