ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用 Python 进行面向对象编程快速指南

2022-11-01 15:26:17  阅读:314  来源: 互联网

标签:python 数据 编程 编程语言 NumPy 安装


Python 中的类和对象

简单来说,类只是实际事物(对象)的骨架或结构。例如,建筑物的草图/轮廓是一个类,而实际建筑物是一个对象。

创建类的语法:

class ClassName:
        <statement-1>
    .
    .
    .
    <statement-N>

现在,如果我们把这个类对象概念应用于所有人,那么我们可以把Person作为一个具有许多属性和功能的类。

class Person:
    age = 30
    height = 180
    weight = 65

    def say_hello(self):
        print('Hello Person')

在这里,我们创建了一个具有年龄、身高体重属性以及 say_hello() 方法或功能的 Person 类。我们已经创建了这个 Person 类,现在怎么办?

要使用这个 person 类,我们需要从这个 Person 类创建一个对象。要创建一个对象,我们使用以下语法:

object_name = ClassName()

创建 Person 类的对象:

person = Person()
print(person)

""" OUTPUT:

<__main__.Person object at 0x000001C47ED317B0>

"""

当我们尝试打印时,我们可以看到它是位于内存中0x000001C47ED317B0的 Person 类的对象。要使用类的属性和方法,我们可以使用以下语法:person

class Person:
    age = 30
    height = 180
    weight = 65

    def say_hello(self):
        print('Hello Person')

person = Person()
print("AGE:", person.age)
print("HEIGHT:", person.height)
print("WEIGHt:", person.weight)

person.say_hello()

""" OUTPUT:

AGE: 30
HEIGHT: 180
WEIGHt: 65
Hello Person

"""

This Person class looks very static and with fixed functionality then why I was calling it a schema/outline you might ask?

I kept the class Person simple on purpose to show you the basic use of Class and Objects. So if I were to show you the proper yet simple use of class and object then:

class Person:

    def __init__(self, name, age, height, weight):
        self.name  = name
        self.age = age
        self.height = height
        self.weight = weight

    def show_data(self):
        print('Details: ')
        print('AGE:', self.age)
        print('HEIGHT:', self.height, "cm")
        print('WEIGHt:', self.weight, "kg")

person1 = Person('John Doe', 33, 180, 75)
person1.show_data()

print("-"*15)

person2 = Person('Jane Doe', 31, 160, 65)
person2.show_data()

""" OUTPUT:
Details:
NAME: John Doe
AGE: 33
HEIGHT: 180 cm
WEIGHt: 75 kg
---------------
Details:
NAME: Jane Doe
AGE: 31
HEIGHT: 160 cm
WEIGHt: 65 kg
"""

As you can see in the above code example, I was able to pass different values for name, age, height and weight and created 2 objects from the Person class. I can pass the same or different values as per my need and create an N number of objects because they will be stored at different locations anyway.

person1 = Person('John Doe', 33, 180, 75)
print(person1)
# OUTPUT: <__main__.Person object at 0x000001E6B1C93FA0>

person2 = Person('Jane Doe', 31, 160, 65)
print(person2)
# OUTPUT: <__main__.Person object at 0x000001E6B1C93EB0>

person3 = Person('Jane Doe', 31, 160, 65)
print(person3)
# OUTPUT: <__main__.Person object at 0x000001E6B1C93E50>

In the real-life scenario, when we have to create multiple users (signup functionality), we do not write code for every user. We use class and create objects based on the received details as we did with and .person1person2

Now, you might have noticed the keyword and method in the above code. So, what are these?self__init__()

Python 中的 init() 方法是什么?

如果您了解其他语言,例如Java,C#或JavaScript,则可能熟悉构造函数的概念。init() 方法是 Python 中一个类的构造函数。对于非技术人员,将构造函数视为一种告诉编译器/解释器启动操作或为我们计划创建的对象分配内存的方法。但是没有必要在 Python 中使用构造函数。如果我们不提供该方法,解释器将自行创建。__init__()

通常,我们使用 init() 方法来初始化某些属性并用于继承目的。正如我们之前看到的,这就是我们初始化变量的方式:

def __init__(self, name, age, height, weight):
        self.name  = name
        self.age = age
        self.height = height
        self.weight = weight

注意:稍后我们将讨论如何使用该方法进行继承。__init__()

现在,你可能会问,但是萨希尔,到底是什么?self

Python 中的“self”关键字是什么?

self 关键字表示类的实例。 (为了简单理解,将实例视为解释器生成的对象。对象和实例并不相同,但在这里认为它们是相同的,只是为了简单理解。)

使用此 self 关键字,我们可以访问整个类中的所有属性/属性和方法。例如,在下面的示例中,我们使用关键字来访问姓名年龄身高体重属性。

标签:python,数据,编程,编程语言,NumPy,安装
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有