python面向对象编程的三大特性,python是面向对象编程语言吗
类是面向对象编程的一部分。面向对象编程,简称OOP,致力于创建可重用的代码块,这些代码块被称为类。当你想在你的程序中使用一个类时,你将从该类中创建一个对象,这也是术语面向对象的起源。Python并不总是面向对象的,但是您将在项目中使用对象。为了理解类,你需要理解一些面向对象的基本术语。
常用术语
阶级:阶级。是类代码块的主体,它定义了已建立模型的属性和行为。这个模型可以来自现实世界,也可以来自虚拟游戏。
属性:属性。是一系列信息的集合。在一个类中,属性通常是一个变量。
行为:行为。行为是在类中定义的,是方法的一部分。也就是在类中定义的函数的一部分。
方法:方法。类中的函数由行为组成。
对象:对象。对象是类的实例。一个对象包含所有类中的属性值。您可以为一个类创建任意数量的对象。
火箭级近距离观察
现在我们知道了一些类的基本术语,让我们回过头来分析一下上一节提到的Rocket类。
__init__()方法
如下定义初始代码块:
classRocket():
# rocket simulates rocketshipforame,
#oraphysicssimulation。
def__init__(self):
#Eachrockethasan(x,y)位置。
self.x=0
Self.y=0第一行显示了该类是如何创建的。class关键字告诉Python定义一个类。类名的命名规则与变量的命名规则相同,但Python中有一个约定的规则,即类名必须隆起。即每个单词的开头必须大写,不允许有下划线。类名后跟一对括号。到目前为止,括号都是空的。在下一个研究中,它可能包含一个类。这个类是新类所基于的类。
前后带有两个下划线的函数是具有特殊用途的内置Python函数。__init__()函数是一个特殊的函数。当一个类的对象被创建时,它将被自动执行。我们可以称之为初始化函数,在使用对象之前初始化一些必要的属性。在此示例中,__init__()函数初始化x和y属性。
自我这个关键词可能有点难以理解。“自我”一词指向当前对象。当您创建一个类时,它可以访问该类中任何指定的属性。基本上,类中的所有函数都需要一个self对象作为第一个参数,这样它们就可以访问类中的属性。
现在,让我们看看类中的方法!
简单的方法
下面的代码定义了Rocket类中的一个方法。
classRocket():
# rocket simulates rocketshipforame,
#oraphysicssimulation。
def__init__(self):
#Eachrockethasan(x,y)位置。
self.x=0
铌
sp;self.y=0
defmove_up(self):
#Incrementthey-positionoftherocket.
self.y+=1方法就是类中的函数。因此你可以在方法中做任何函数能做的事。
默认情况下,每个函数都需要接受一个参数:self 。它是对调用这个方法的对象的引用。self 参数能让你访问到调用对象的属性。在这个例子中,self 用来访问 Rocket 对象的 y 属性。这个方法被调用一次,对象的 y 属性就增加1。为了更近一步了解方法的运行过程,仔细阅读下述代码,并观察它们的输出。
classRocket():创建多个对象#Rocketsimulatesarocketshipforagame,
#oraphysicssimulation.
def__init__(self):
#Eachrockethasan(x,y)position.
self.x=0
self.y=0
defmove_up(self):
#Incrementthey-positionoftherocket.
self.y+=1
#CreateaRocketobject,andhaveitstarttomoveup.
my_rocket=Rocket()
print("Rocketaltitude:",my_rocket.y)
my_rocket.move_up()
print("Rocketaltitude:",my_rocket.y)
面向对象编程一个重要目标是创建可重用代码。一旦你写好了类,就能创建任意数量的对象。通常,类被放进一个单独的文件中,在需要的时候导入程序中。因此你可以创建一个类库,在不同的程序中重复使用这些类。
在一个类上创建多个对象,示例如下:
classRocket():#Rocketsimulatesarocketshipforagame,#Rocket
#oraphysicssimulation.
def__init__(self):
#Eachrockethasan(x,y)position.
self.x=0
self.y=0
defmove_up(self):
#Incrementthey-positionoftherocket.
self.y+=1
#Createafleetof5rockets,andstoretheminalist.
my_rockets=[]
forxinrange(0,5):
new_rocket=Rocket()
my_rockets.append(new_rocket)
#Showthateachrocketisaseparateobject.
forrocketinmy_rockets:
print(rocket)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。