Python 是一种面向对象的高档言语,因此类关于 Python 非常重要。类是一个空间,在该空间中变量 (特点 / 办法) 别离存储。运算符’ . ‘用于调用类的特点和办法。类是事务类的笼统,它不是真的存在,它描绘了事务的共性。在查找类特点时,python 首先找到实例,然后在实例中找到特点,当找不到时,它将在类内部进行查找。那么怎样运用 Python 的类?优势有哪些?下面让我们一起来具体了解一下吧。
怎样运用 Python 的类?
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。
Python 类优势有哪些?
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 www.zpedu.com/it/rjyf/
99
Traceback (most recent call last):
File “F:/Autotest interface demo/test.py”, line 12, in
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 () )