什么是类,Python class类的定义

Python 从设计之初就是一门面向对象的语言,Python 中的一切数据都是对象。

Python 中涉及面向对象的术语主要有:

  • 类:用来描述具有相同的属性和方法的对象的集合,定义了该集合中每个对象所共有的属性和方法。类是生成对象的“模板”;
  • 对象:通过类定义的数据结构实例。对象由类变量、实例变量和方法构成;
  • 数据成员:类变量或者实例变量,用于处理类及其实例对象的相关的数据,又称属性;
  • 类变量:同一个类的所有对象均可访问的变量,类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用;
  • 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的;
  • 方法:类中定义的函数;
  • 实例化:创建一个类的实例,即生成类的一个具体对象;
  • 继承:即一个派生类(Derived Class,也称子类)继承基类(Base Class,也称父类)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待;
  • 方法重写:在子类中定义与父类同名的方法,这个过程称为方法的重写(Overwrite),又称方法的覆盖(Override)。

Python 中定义一个类的语法如下:

class 类名:
    <数据成员声明 1>
    …
    <数据成员声明 N>

定义类后可以将其实例化得到一个对象,并通过操作对象完成目标任务,例如:

class Class1:
    i = 123
    def func1(self):
        return 'Hello there!'

x = Class1()
    print("Class1 类的属性 i 为:", x.i)
    print("Class1 类的方法 func1() 输出为:", x.func1())

上述代码的运行结果如下所示:

>>> class Class1:
…          i = 123
…          def func1(self):
…              return 'Hello there!'

>>> x = Class1()
>>> print("Class1 类的属性 i 为:", x.i)
Class1 类的属性 i 为: 123
>>> print("Class1 类的方法 func1() 输出为:", x.func1())
Class1 类的方法 func1() 输出为: Hello there!

类内部的变量分为类变量和实例变量两种,类变量的定义和普通变量一样,调用时使用的方式直接访问,类的实例也能访问类变量。实例变量则是以 self. 开头,仅供各个实例对象使用。

类名.变量名

类内部的方法分为三种:

  • 实例方法:是指该类的每个实例都可以调用到的方法,只有实例能调用实例方法。与普通函数不同的是,实例方法有一个额外的第一个参数,其名称按惯例是 self。
  • 类方法:是将类本身作为对象进行操作的方法,类本身和实例都可以调用类方法。定义时使用 @classmethod 进行装饰,其第一个参数是类,名称按惯例是 cls。实例方法和类方法都是依赖于 Python 的修饰器实现的。
  • 静态方法:是一种存在于类中的普通函数,不会对任何实例类型进行操作,类本身和实例都可以调用静态方法,定义时以 @staticmethod 进行装饰声明。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/23766.html

(0)
上一篇 2021年7月20日
下一篇 2021年7月20日

相关推荐

发表回复

登录后才能评论