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


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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/292420.html

(0)
上一篇 2022年11月1日
下一篇 2022年11月1日

相关推荐

发表回复

登录后才能评论