python类的理解与使用

描述

python类的理解与使用

1. 通俗理解类

类(英文名 class),是具有相同特性(属性)和行为(方法)的对象(实例)的抽象模板。

从定义上来理解类,是一件非常吃力的事情,特别是对那些没有任何基础的初学者。

下面我举例来说明类中一些关键术语都是什么意思:

类:动物属于一个类,植物属于一个类

实例:猫和狗都属于同一类,就是动物类,那么猫和狗是动物类的实例/对象。

属性:类中所有的变量,都叫做属性。

方法:类中的所有函数,都叫做方法。

类与对象的关系就如模具和铸件的关系,类的实例化的结果就是对象,而对象的抽象就是类,类描述了一组有相同特性(属性)和相同行为(方法)的对象。

2. 如何定义类?

定义一个类,使用的是 class 关键字

下边我定义了一个 Animal 的类

class Animal:
    age = 0
    def __init__(self, name):
        self.name = name

    def run(self):
        print(f"{self.name} 跑起来了")

其中

Animal 是类名

__init__ 是构造函数,用于实例的初始化

self.name 是实例属性,age 是类属性

run 是方法,第一个参数 self 是什么意思呢?这个咱后面再讲。

除了上面这种写法外

# 第一种写法
class Animal:
  ...

还有另外两种写法,与之是等价的

# 第二种写法
class Animal():
  ...

# 第二种写法
class Animal(object):
  ...

因为在 Python 3 中,无论你是否显示继承自 object,Python 解释器都会默认你继承 object ,这是新式类的写法,与之对应的是 Python 2 的经典类写法。

3. 如何实例化?

定义了类之后,就可以通过下边的写法实例化它,并访问属性,调用方法

>>> class Animal:
...     def __init__(self, name):
...         self.name = name
...     def run(self):
...         print(f"{self.name} 跑起来了")
...
>>>
>>> dog=Animal(name="小黑")  # 实例化出 dog 对象

在实例化时传入的参数 name="小黑" 传进入到构造函数 __init__ 中,最终赋值 self.name 成为实例的属性。

4. 方法的调用

实例化成对象后,如果访问实例属性,可以用 对象.属性名 进行访问。

>>> dog=Animal(name="小黑")
>>> dog.name  # 访问属性
'小黑'

如果要调用方法,有两种方法

通过 对象.方法名:使用这种方法,在定义方法时 self 就代表对象(dog),调用时无需再传入了。

>>> dog=Animal(name="小黑")
>>> dog.run()  # 调用方法
小黑 跑起来了

通过 类.方法名:使用这种方法,self 参数要传入实例对象

>>> dog=Animal(name="小黑")
>>> Animal.run(dog)
小黑 跑起来了

审核编辑:符乾江
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分