《简明Python教程》—— 7.面向对象编程
类(class)
面向对象最重要的概念就是类(Class)和实例(Instance)。
一个类(Class)能够创建一种新的类型(Type),
而对象(Object)就是类的实例(Instance)。
- 类是一组有相同属性的数据的合集。
- 实例是类属性的具体实现,类的实例化用函数表示法:
x=MyClass()
- 类属性: 类中的变量,用于存储数据。
x=MyClass.i
- 方法: 类中的函数,用于操作数据或执行某些操作。
x=f()
- __init__方法,也叫构造函数,用于初始化实例对象的特定初始状态。
- 方法,带有self参数的函数,用于定义对象的行为
1. 类的定义:
- 在实践中,类定义内的语句通常都是函数定义,但也可以是其他语句。
- 类里的函数定义一般是特殊的参数列表,这是由方法调用的约定规范所指明的
定义一个类使用关键字 class,后跟类名(通常首字母大写):
class Name: pass
2. 类对象
类支持两种操作:类属性引用和实例化。
类属性引用: 使用 Python 中所有属性引用所使用的标准语法: obj.name。 有效的属性 名称是类对象被创建时存在于类命名空间中的所有名称。
class Myclass: '''A simple example class.''' i = 12345 # 类变量,被所有实例共享 def __init__(self,name,age): # 类的构造方法 self.name = name # 实例变量 self.age = age # 实例变量 def f(self): # 方法 return 'hello world'
- 那么
MyClass.i
和MyClass.f
就是有效的属性引用,将分别返回一个整数和一个函数对象。 - 类属性也可以被赋值,因此可以通过赋值来更改
MyClass.i
的值。 - 类引用变量的格式:
MyClass().i
- 类引用方法的格式:
MyClass().f()
3. 实例对象
类的实例化 使用函数表示法。可以把类对象视为是返回该类的一个新实例的不带参数的函数。
x = MyClass()
创建类的新 实例 并将此对象分配给局部变量 x。
- 实例化操作(“调用”类对象)会创建一个空对象。
- 一旦定义了类,就可以创建类的实例(对象),并通过对象访问类的属性和方法。
- 实例是根据类的模板创建出来的对象。实例对象理解的唯一操作是属性引用。有两种有效的属性名称,数据属性和方法。
- 数据属性 不需要声明;像局部变量一样,它们将在第一次被赋值时产生。
4. 方法对象(Method)
- 方法 是“从属于”对象的 函数 。
类与对象一如函数那般都可以带有方法(Method),唯一的不同在于方法还拥有一个额外的 self
变量。
方法在绑定后立即被调用:
x.f()