最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

python基础学习:面向对象思想之类和对象

XAMPP案例 admin 50浏览 0评论
类(Classes)
在之前的文章中,我们研究了两种编程范例:
  • 命令式 :即使用语句,循环和函数作为子例程。
  • 函数式 :使用纯函数,高阶函数和递归

今天我们来讨论另外一种非常流行的范例:

  • 面向对象编程(OOP)。

使用创建对象,而实际上是OOP的重点。

描述了对象将是什么,但与对象本身是分开的。换句话说,可以描述为对象的蓝图,描述或者定义。

dz85Python

面向对象是一种思维的转变。

面向对象编程使程序的扩展性更强、可读性更好。面向对象更加关注的是“软件中对象之间的关系”,是一种“设计者”思维,适合编写 大规模的程序。面向对象(Object)思想更契合人的思维模式。我们首先思考的是“怎么设计这个事物?” 比如思考造车,我们就会先思考“车怎么设计?”,而不是“怎么按步骤造车的问题”。这就是思维方式的转变。

 

创建类(Create classes)
使用关键字class和一个缩进块创建类。缩进块包含类方法,即函数。
For example:
class Cat:
    def __init__(self, color, legs):
        self.color = color
        self.legs = legs


felix = Cat("ginger", 4)
rover = Cat("dog-colored", 4)
stumpy = Cat("brown", 3)

Tips : 该段代码定义了一个名为Cat的类,它具有两个属性:color和legs。然后,使用该类创建三个单独的对象。

 

构造函数__init__
__init__方法是类中最重要的方法。
class 类名:
    #初始化函数,用来完成一些默认的设定
    def __init__():
        pass
当使用类名作为函数创建类的实例(对象)时调用此方法!!!
尽管没有显示传递,但所有方法都必须将self作为其第一个参数,Python会为您将self参数添加到列表中。调用方法时不需要包含它。在方法定义中,self是指调用该方法的实例。
注意:
  • 名称固定,必须为__init__()
  • 如果我们不定义__init__方法,系统会提供一个默认的__init__方法。如果我们定义了带参 的__init__方法,系统不创建默认的__init__方法。
  • Python 中的 self 相当于 C++中的 self 指针,JAVA 和 C#中的 this 关键字。Python 中, self 必须为构造函数的第一个参数,名字可以任意修改。但一般遵守惯例,都叫做 self。
类的实例具有属性,Cat实例具有属性color和legs。可以通过在实例后面放置一个点和属性名称来访问它们。因此,在__init__方法中,self.属性名可用于设置实例属性的初始值。

For example:

class Cat:
    def __init__(self, color, legs):
        self.color = color
        self.legs = legs


felix = Cat("ginger", 4)
print(felix.color)

Tips : 在上面的示例中,__init__方法采用了两个参数,并将它们分配给对象的属性。__init__方法称为类构造函数。

 

方法(Method)
类可以定义其他方法来向其中添加功能。请记住,所有方法都必须将self作为其第一个参数。使用与访问属性相同的点语法访问这些方法。
For example:
class Dog:
    def __init__(self, name, color):
        self.name = name
        self.color = color

    def bark(self):
        print("Woof!")


fido = Dog("Fido", "brown")
print(fido.name)
fido.bark()
Tips : 尝试访问未定义实例的属性会导致AttributeError。当您调用未定义的方法时,这也适用。

写在最后

本节给大家介绍了Python必备神技 —— 类和对象。很重要的内容,学完简直就是神器在手了,下一篇我们会介绍继承和运算符重载。勤能补拙是良训,希望大家还是动手做一做,有问题可以私信我,欢迎交流和提出您的宝贵意见。

你要偷偷学Python,然后惊艳所有人。

转载请注明:XAMPP中文组官网 » python基础学习:面向对象思想之类和对象