python-类(class)是什么?怎么用?


之前讲过了面向对象,那么在python中,面向对象就是用类(class)来实现的。


1、类是什么?

简单来说,类就是一个模板。比如我在创建一个word的时候,软件会提醒我选择一个模板,这里有会议模板,有生活模板等等,不同的模板里面包含不同的主题、人物、事情等等。

那么这个类,就是这样一个模板,我们可以自己去定义一个模板,在我们需要的时候来按照模板创建一个对象,进行调用。

类这个东西事实上我们很早已经接触过了,看这里。

#这里随便来定义几个变量,来查看它的类型
a = 1
b = 'abc'
c = [0]
print(f'{a}的类型:{type(a)}')
print(f'{b}的类型:{type(b)}')
print(f'{c}的类型:{type(c)}')

结果很常见:

1的类型:<class ‘int’>
abc的类型:<class ‘str’>
[0]的类型:<class ‘list’>

可以看到在’int’前面有一个class,这个class就是我们要介绍的类。也就是说,int,str,list等等这些,都各自是一个类。另外,输入type会出现class,说明class就是type类型的对象,这点我们稍后再说。

2、类的定义

定义一个函数时,语法是:

def func():
	pass

定义一个类时,语法比较相似,但又有所不同,举个例子:

class MyClass([父类])#属性(就是变量)
	#方法(就是函数)

类名后面的括号可有可无。

3、属性和方法的调用

现在先来创建一个简单的类Dog(类的创建要使用大驼峰命名):

class Dog:
    # 属性
    name = '哈士奇'
    #方法
    def speak():
        print('汪汪汪')

然后我们就可以用这个类来创建一个对象,以及调用它的属性和方法(对象是类的一个实例):

dog1 = Dog
print(dog1.name)
dog1.speak()

输出结果:

哈士奇
汪汪汪

也就是说,在类中,我们可以定义变量和函数作为属性和方法,通过对象.属性名/对象.方法名() 来调用

  • 变量会成为该类实例的公共属性,所有的该实例都可以通过 对象.属性名的形式访问
  • 函数会成为该类实例的公共方法,所有该类实例都可以通过 对象.方法名的形式访问
  • 当调用一个对象的属性或者方法时,解析器首先在本对象中寻找,如果有则返回这个对象中的值,如果没有则去类中寻找,再没有就报错

4、isinstance()

用来检查某个对象是不是某个类的实例。

语法为:

isinstance(对象名,类名)

是则返回True,不是则返回False。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章