Python基础--------面向对象一

Python基础--------面向对象一,第1张

概述面向对象到目前为止,在我们的程序中,我们都是根据 *** 作数据的函数或语句块来设计程序的。这被称为面向过程的编程。还有一种把数据和功能结合起来,用称为对象的东西包裹起来组织程序的方法。这种方法称为面向对象的编程理念。面向过程的与面向对象的区别:面向过程:面向过程 面向对象

到目前为止,在我们的程序中,我们都是根据 *** 作数据的函数或语句块来设计程序的。这被称为 面向过程的 编程。还有一种把数据和功能结合起来,用称为对象的东西包裹起来组织程序的方法。这种方法称为 面向对象的 编程理念。
面向过程的与面向对象的区别:
面向过程:

面向过程指将我们的程序分解为一个一个步骤,通过对每个步骤的抽象来完成程序这种编写方式往往只适用于一个功能,如果要实现别的功能,往往复用性比较低这种编程方式符号人类的思维,编写起来比较容易
面向对象:面向对象的编程语言,关注的是对象,而不注重过程,对于面向对象一切皆对象面向对象的编程思想,将所有功能统一保存到对应的对象中,要使用某个功能,直接找到对应的对象即可这种编码方式比较容易阅读,并且易于维护,容易复用。但是编写的过程中不太符合常规的思维,编写相对麻烦
下面就让我们一起具体的来认识认识面向对象吧类

面向对象是通过定义class类来定义,这么说面向对象编程就是只使用class类,在class类中有封装,继承的功能,并且还可以构造要传入的参数,方便控制。
在正式进入主题之前先了解一下有关的专业术语

类(Class): 用来描述具有相同属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。其中的对象被称作类的实例。实例:也称对象。通过类定义的初始化方法,赋予具体的值,成为一个”有血有肉的实体”。实例化:创建类的实例的过程或 *** 作。
实例变量:定义在实例中的变量,只作用于当前实例。类变量:类变量是所有实例公有的变量。类变量定义在类中,但在方法体之外。数据成员:类变量、实例变量、方法、类方法、静态方法和属性等的统称。方法:类中定义的函数。静态方法:不需要实例化就可以由类执行的方法类方法:类方法是将类本身作为对象进行 *** 作的方法。方法重写:如果从父类继承的方法不能满足子类的需求,可以对父类的方法进行改写,这个过程也称overrIDe。封装:将内部实现包裹起来,对外透明,提供API接口进行调用的机制继承:即一个派生类(derived class)继承父类(base class)的变量和方法。多态:根据对象类型的不同以不同的方式进行处理。创建类

语法

class (类名):    pass

示例

class Dog(): #创建类 """一次模拟小狗的简单尝试"""   def __init__(self, name, age):  """初始化属性name和age"""   self.name = name  self.age = age  def sit(self):  """模拟小狗被命令时蹲下"""  print(self.name.Title() + " is Now sitting.")  def roll_over(self):  """模拟小狗被命令时打滚"""  print(self.name.Title() + " rolled over!")

在这个例子有很多注意的地方
创建类名时类名的首字母要大写,如有多个单词组成的类名应该采用大驼峰式命名法

self参数

Python 规定,无论是构造方法还是实例方法,最少要包含一个参数,并没有规定该参数的具体名称。之所以将其命名为 self,只是程序员之间约定俗成的一种习惯,遵守这个约定,可以使我们编写的代码具有更好的可读性(大家一看到 self,就知道它的作用)。
那么,self 参数的具体作用是什么呢?
打个比方,如果把类比作造房子的图纸,那么类实例化后的对象是真正可以住的房子。根据一张图纸(类),我们可以设计出成千上万的房子(类对象),每个房子长相都是类似的(都有相同的类变量和类方法),但它们都有各自的主人,那么如何对它们进行区分呢?当然是通过 self 参数,它就相当于每个房子的门钥匙,可以保证每个房子的主人仅能进入自己的房子(每个类对象只能调用自己的类变量和类方法)。也就是说,同一个类可以产生多个对象,当某个对象调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,换句话说,Python 会自动绑定类方法的第一个参数指向调用该方法的对象。如此,Python解释器就能知道到底要 *** 作哪个对象的方法了。
因此,程序在调用实例方法和构造方法时,不需要手动为第一个参数传值。
例如下面这段代码

class Person:    def __init__(self):        print("正在执行构造方法")    def study(self): # 定义一个study()实例方法        print(self,"正在学Python")zhangsan = Person()zhangsan.study()lisi = Person()lisi.study()

上面代码中,study() 中的 self 代表该方法的调用者,即谁调用该方法,那么 self 就代表谁。因此,该程序的运行结果为:

正在执行构造方法<__main__.Person object at 0x0000021ADD7D21D0> 正在学Python正在执行构造方法<__main__.Person object at 0x0000021ADD7D2E48> 正在学Python
方法__init__(self)

类中的函数称为方法,在类中可以定义一些特殊方法也称为魔术方法,特殊方法都是形如 xxx()这种形式
方法__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。
我们将方法__init__()定义成了包含三个形参:self、name和age。在这个方法的定义中,形参self必不可少,还必须位于其他形参的前面。为何必须在方法定义中包含形参self呢?因为Python调用这个__init__()方法来创建Dog实例时,将自动传入实参self。每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。
我们创建Dog实例时,Python将调用Dog类的方法__init__()。我们将通过实参向Dog()传递名字和年龄;self会自动传递,因此我们不需要传递它。每当我们根据Dog类创建实例时,都只需给最后两个形参(name和age)提供值。

类的实例化

对已定义好的类进行实例化,其语法格式如下:
类名(参数)
类的使用
使用已创建好的类对象访问类中实例变量的语法格式如下:
类对象名.变量名
使用类对象调用类中方法的语法格式如下:
对象名.方法名(参数)

#输出name和add实例变量的值print(clanguage.name,clanguage.add)#修改实例变量的值clanguage.name="Python教程"clanguage.add="http://c.biancheng.net/python"#调用clanguage的say()方法clanguage.say("人生苦短,我用Python")#再次输出name和add的值print(clanguage.name,clanguage.add)
总结

以上是内存溢出为你收集整理的Python基础--------面向对象一全部内容,希望文章能够帮你解决Python基础--------面向对象一所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1188303.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存