面向对象
什么是面向对象?
面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
前面写过的程序是面向对象吗?
我们之前已经写了不少小程序,都是按照功能需求的顺序来设计程序。这种被称为“面向过程”的编程。
类和对象
面向对象编程最主要的两个概念就是:类(class)和对象(object)。
类是一种抽象的类型,而对象是这种类型的实例。
举个现实的例子:“笔”作为一个抽象的概念,可以被看成是一个类。而一支实实在在的笔,则是“笔”这种类型的对象。
一个类可以有属于它的函数,这种函数被称为类的“方法”。一个类/对象可以有属于它的变量,这种变量被称作“属性”。
类定义
类定义:使用class关键字
class ClassName:
类运行不像函数了,需要实例化类的对象
实例化调用
class demo_class:
def__init__(self,name,age)
self.name = name
self.age = age
self
self在类方法中的值,就是你调用的这个对象本身。
类的属性
类的属性分为类属性和实例属性,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同,类属性是在类里面定义的,而实例属性是在方法里面定义的。
class Province:
# 类属性
country = "China"
def __init__(self, name):
# 实例属性
self.name = name
obj_henan = Province("HeNan")
print(obj_hunan.name) # 使用对象访问实例属性
print(Province.country) # 使用类访问类属性
由上述代码可以看出【实例属性需要通过对象来访问】【类属性通过类访问】,在使用上可以看出他们的归属是不同的。
类的方法
类的方法方法包括:普通方法、静态方法和类方法,三种方法在内存中都归属于类,区别在于调用方式不同。
普通方法:由对象调用;至少一