在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
本文是一篇关于Python类的学习总结,主要包括类的基础知识、类的使用以及类的优势。如果你想弄清楚Python中的类,就赶紧接着看下去吧~

1、类的基础知识
说到类,就不得不提面向过程编程和面向对象编程。下面用1个例子说明这两种编程方式在编码上的区别,如下图所示:


(1)在面向对象编程中最重要的概念是类(Class) 和实例(Instance) 。
(2)类是抽象的模板,可以将其理解为一个基础模板,比如Student类。而实例是根据类创建出来的一个具体对象。“物以类聚,人以群分”, 可以从这句话来理解编程中的类。类应该是有共同特点的事物的集合,比如人类、动物类。类中的对象应该有共同的特点,而这些特点对应编程中的类的共同属性和方法。而具体的对象之间又或多或少有差别,比如在“鸟”这个类中,每只鸟又有自己的特点。
(3)每个对象都拥有相同的方法,但各自的数据可能不同。每个对象都拥有相同的方法,实例拥有类中所有的方法;无论实例的名称如何不同,他们的方法都是一样的。比如,类是 Student, 那么不管是实例 lilei, 还是实例hanmeimci,只要它们都是 Student的实例,它们所拥有的方法都是相同的。每个实例的数据可能不同,这是因为在使用实例时,如果需要在这个类中传入参数作为初始数据,那么每个实例可能会被传入不同的数据。比如数据库类,如果传入的是不同的数据库连接串,则实例的数据就不同了。
2、类的使用
(1)在Python中,定义类是通过class关键字来实现的:
class Student(object):
Pass
class 后面紧接着是类名,即Student.类名通常采用单词首字母大写的形式命名,比如 StudentCore。
(object) 表示该类是从哪个类继承来的。如果没有合适的继承类,则通常使用 object 类,这是所有类都会继承的类。
(2)实例化一个类是通过在类名后面加小括号“()”来实现的:
pupil=Student ()
“小学生”是“学生”这个的一个实例。所谓实例,可以将其理解为类的化身。类不能被直接使用,只能先将其实例化,然后用实例代表类,进而调用类中的方法处理数据。那么实例是怎么代表类的呢?在定义类及其方法时,有一个参数叫self, 它就是串联实例与类之间的关键参数,可以简单地理解为“self=实例名”。
类的下面有属性和方法。可以将属性理解为静态的数据,将方法理解为动态的处理函数。比如,在下面的代码中定义了“学生”类,其中_ _init_ _是属性,print_score 是方法。
#-*-coding:utf-8-*
Class Student (object) :
def _ _ init_ _ (self,name,score) :
self.name= name
self.score=score
def print_score (self) :
print ('%s: %s'% (self. _ _name,self. _ _acore) )
(3)实例化上面的类,然后分析Python 如何利用实例化类调用类中的方法。
完整的实例化类与调用过程如下:
pupil=student (name='lilei',score=99)
pupil.print_score ()
按照前面的说法,self=实例名,那么 pupil=Student (name='lilei',score=99) , 实例化类的第一步是执行 _ _init_ _ 语句,即 Student (self='pupil',name='lilei',score=99) , 则可知pupil.name='lilei',pupil.score=9.实例化类的第二步是执行 pupil.print_score () 语句,调用实例的方法就是调用类的方法,而这个方法是按照格式打印出
pupil.name:pupil.score,mlilei: 99。
3、类的优势
(1)类的访问限制。
所谓类的访问限制,即在类的外部不能直接调用类中的数据。在 Python 中,在变量前加“_ _”可将变量置为私有变量,使其只能在类中被使用,不能被类之外的其他函数(方法)调用。下面代码中的name 参数表示的就是私有变量。
#-*-coding:utf-8-*-
#_ _author_ _='大婶N72’
class Student (object) :
def _ _init_ _(self,name,score) :
self._ _name= name
self.score= score
def print_score (self) :
print ('%s: %S'% (self._ _name,self._ _score) )
MeiMei=Student ('hello', 99)
print (MeiMei.score)
print (MeiMei. _ _name)
代码的运行结果很好地佐证了加了“_ _”的参数是不能被调用的,没加“_ _”的参数是可以直接被调用的,如下所示:
C:\Python36\python3. exe F:/Autotest_interface_demo/test. py
99
Traceback (most recent call last):
File "F:/Autotest interface demo/test.py”, line 12, in <module>
print (MeiMei._name)
AttributeError: ' Student' object has no attribute'__name’
Process finished with exit code 1
(2) 类的继承。
所谓“继承”, 从字面上看很好理解:如果一个类继承了另外一个类,则这个类就有了被继承的类的所有方法和属性。我们可以直接使用这些方法和属性,无须再单独写。下面举一个例子来解释什么是继承。类的基本定义如下:
# -*- coding:utf-8 -*-
# _ _author_ _=‘大婶N72’
# 父类
class Parent (object) :
def print_self (self) :
return “我是父类”
# 子类继承父类
class Student (Parent) :
def_ _init_ _ (self,name,score) :
self. _ _name= name
self.score=score
def print_score (self) :
print ('%s: %s'% (self. _ _name,self. _ _score) )
MeiMei=Student ('hello', 99)
print (MeiMei.score)
#直接在子类中使用父类的方法
print (MeiMei.print_self ()
在上面的例子中,子类 Student 继承了父类 Parent.方法是在类名称后面的小括号中加上父类的名称。子类继承了父类,则有了父类 Parent 的方法 print_self, 从而可以直接在自己的实例名中使用。
(3)类的多态。
如果子类继承了父类,但是又想改变父类的方法,则这时无须修改父类的方法,只需要在子类中添加相同的方法名就可以起到覆盖的作用,这就是多态。
# -*- coding:utf-8 -*-
# _ _author_ _='大婶N72'
#父类
class Parent (object) :
def print_self (self) :
return"我是父类"
#子类继承父类
class Student (Parent) :
def _ _init_ _ (self,name,score) :
self. _ _name= name
self.score=score
def print_score (self) :
print ('%s: %S'% (self. _name,self. _ _score) )
def print_self (self) :
return"我是子类"
MeiMei=Student ('hello', 99)
print (MeiMei.score)
#子类的方法覆盖父类方法
print (MeiMei.print_self () )
以上就是Python类基础知识学习总结,大家都弄清楚了吗?
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
初学者python入门必看书籍推荐(上)
随着最近Python的热度上涨,学习的人数也在增多,也因为Python这门语言的简短、易学、语言优美的优点,吸引了很多人来学习它。初学者想要入门,就必须先通过阅读,学习大量的理论知识对Python有一定的了解。这里小编推荐一些初学者python入门必看书籍。
8585
2019-07-02 18:10:20
学Python需要什么基础知识?零基础可以学Python吗?
学Python需要什么基础知识?一般来说,想要学Python最好具备一定的计算机专业知识,尤其是数学和英语不错的话,对学Python也有一定的帮助。但是零基础的学习者就不能学Python了吗?当然不是,以上这些条件只是加分项,没有的话就需要付出更多的努力。而且Python作为一门新手友好的编程语言,是零基础学习者的最佳选择。
6171
2019-09-23 19:58:27
学习Python开发难不难?
Python编程语言近几年已然成为最热门的编程语言之一,Python编程语言被广泛引用语人工智能开发、数据科学、Web开发、自动化测试、自动化运维等领域。由于Python开发工程师的就业范围广泛、就业薪资较高,很多同学将Python作为自己进入互联网的首选语言。还有一些同学在问学习Python开发难不难?想了解这个问题,就跟着小编一起学习一下吧。
5734
2019-10-28 18:50:45
Python字符串常用技巧整理
相信在大家日常的文本处理工作中,都免不了要使用字符串。众所周知,使用Python处理字符串,十分的便捷和高效。本文整理了六大处理字符串的技巧,分别是字符串的切片和相乘,字符串中去掉一些字符,字符串的连接和合并,字符串的分割,字符串的开头和结尾的处理,字符串的查找和匹配。想要玩转Python字符串,就和我一起来看看吧!
5919
2019-12-02 16:44:31
计算机视觉如何入门学习?
计算机视觉是当前最主流的AI应用技术之一,也是不少Python学习者的必须掌握的基础知识。那么对于完全零基础的学习者来说,计算机视觉如何入门学习呢?本文将向大家介绍一门免费的实战课程,希望可以帮助大家入门计算机视觉领域并快速落地应用。下面是课程的详情介绍:
6426
2020-06-18 16:21:45
