知行编程网知行编程网  2022-12-26 08:00 知行编程网 隐藏边栏  0 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于学习Python类型和对象,看这篇文章足矣!的相关知识,包括python对象的概念,以及python类和对象详解这些编程知识,希望对大家有参考作用。

要学习 Python 类型和对象,只需阅读本文!


类型与对象

一点基础理论:

对象代表现实世界中的事物,例如汽车、狗和自行车。对象有两个主要特征,数据和行为。

在面向对象编程中,我们将数据视为属性,将行为视为方法。这是:

数据 → 属性 和 行为 → 方法

类型是创建单个对象实例的蓝图。在现实世界中,我们经常会发现很多对象实例具有相同的类型,比如汽车。它们都具有相同的结构和型号(带有电机、轮子、门等)。每辆汽车都是根据相同的蓝图制造的,并具有相同的组件。

Python,作为一门面向对象编程的语言,具有类和对象的概念。

类是蓝图,对象是模型。

同样,一个类,它只是一个模型,或者是一种定义属性和行为的方法(正如我们在理论部分讨论的那样)。例如,Vehicle 类有自己的属性来定义车辆是什么。车轮数量、能源类型、座位容量和速度都是车辆的属性。

考虑到这一点,让我们看看类的 Python 语法:

class Vehicle:
    pass

我们用类声明定义一个类 ,就是这样。很简单,不是吗?

对象是类的实例,我们使用命名类来创建实例。

car = Vehicle()
print(car) # <__main__.Vehicle instance at 0x7fb1de6c2638>

这里 ‘car’ 是 ‘Vehicle’ 类的一个对象(或者说实例)。

请记住,我们的“车辆”类有四个属性:车轮数量、能量类型、座位容量和速度。我们在创建“车辆”对象时设置所有这些属性。所以在这里,我们定义我们的类何时被初始化以接收数据:

class Vehicle:
    def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity

我们使用“初始化”方法。我们称之为构造函数。所以这些属性可以在创建“车辆”对象时定义。假设我们喜欢 Tesla Model S,我们想要创建这种对象。它有 4 个轮子,靠电力运行,有 5 个座位​​,速度为 250 公里/小时(155 英里/小时)

tesla_model_s = Vehicle(4, 'electric', 5, 250)

4 个 “轮子”+ 电能 “能源”+5 个 “座位”+250km/h “速度”。

所有属性都已设置。但是我们如何获得这些属性值呢?我们向对象发送消息以询问他们。我们称之为方法。方法是对象的行为。让我们来实现它:

class Vehicle:
    def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity

    def number_of_wheels(self):
        return self.number_of_wheels

    def set_number_of_wheels(self, number):
        self.number_of_wheels = number

这里创建了两个方法:number_of_wheels 和 set_number_of_wheels。我们称它们为 Get & Set。因为第一个获取属性值,第二个设置新的属性值。

Python 中,我们可以用 “@property” (“decorator”) 去定义 "getters" 和 “setters”。请看以下代码:

class Vehicle:
    def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity

    @property
    def number_of_wheels(self):
        return self.number_of_wheels

    @number_of_wheels.setter
    def number_of_wheels(self, number):
        self.number_of_wheels = number

同时,我们可以使用这些方法作为属性:

tesla_model_s = Vehicle(4, 'electric', 5, 250)
print(tesla_model_s.number_of_wheels) # 4
tesla_model_s.number_of_wheels = 2 # setting number of wheels to 2
print(tesla_model_s.number_of_wheels) # 2

这与定义方法略有不同。这些方法与属性的工作方式不同。比如我们设置轮子的个数,需要给一个变量赋值2,就把“number_of_wheels”的值设置为2即可。这是一种写“pythonic”、“getter”、“setter”代码的方式。

同时我们也可以使用其他方法,比如“make_noise”方法。请看下面的例子。

class Vehicle:
    def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity

    def make_noise(self):
        print('VRUUUUUUUM')

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享