两大编程思想

类型 面向过程 面向对象
区别 事物比较简单,可用线性思维解决 事物比较复杂,简单的线性思维无法解决
共同点 面向对象和面向过程都是解决实际问题的一种思维方式
总结 两者相辅相成,并不是对立的。
解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间的复杂关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程的方式来处理。

类与对象

类的定义

多个类似事物组成的群体的统称。
能够帮助我们快速理解和判断事物的性质。

数据类型

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

类的创建

创建语法
  • 类名:由一个或多个单词组成,每个单词首字母大写,其余小写。
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)  # allin
stu.info()  # 我的名字是 allin ,年龄是 20
Student.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代码块:在类的内部为方法,在类的外部为函数。
一个类可以创建无数个实例对象,实例对象的属性值可以不同。
为一个对象实例动态绑定的属性和方法不会影响类及其他的实例,只作用于自身。


泡琳
0 声望0 粉丝

慢慢成长吧