Hướng dẫn why python is an object - tại sao python là một đối tượng

Đối tượng và lớp Python

Python là một ngôn ngữ lập trình hướng đối tượng. Không giống như lập trình theo định hướng thủ tục, trong đó nhấn mạnh chính là các chức năng, ứng suất lập trình hướng đối tượng trên các đối tượng.

Một đối tượng chỉ đơn giản là một tập hợp dữ liệu [biến] và phương thức [hàm] hoạt động trên các dữ liệu đó. Tương tự, một lớp là một bản thiết kế cho đối tượng đó.

Chúng ta có thể nghĩ về một lớp học như một bản phác thảo [nguyên mẫu] của một ngôi nhà. Nó chứa tất cả các chi tiết về sàn, cửa ra vào, cửa sổ, vv Dựa trên những mô tả này, chúng tôi xây dựng ngôi nhà. Nhà là đối tượng.

Vì nhiều ngôi nhà có thể được làm từ bản thiết kế của một ngôi nhà, chúng ta có thể tạo ra nhiều đối tượng từ một lớp. Một đối tượng còn được gọi là một thể hiện của một lớp và quá trình tạo đối tượng này được gọi là khởi tạo.instantiation.

Xác định một lớp học trong Python

Giống như các định nghĩa chức năng bắt đầu với từ khóa def trong Python, các định nghĩa lớp bắt đầu bằng từ khóa lớp.

Chuỗi đầu tiên bên trong lớp được gọi là DocString và có một mô tả ngắn gọn về lớp. Mặc dù không bắt buộc, điều này rất được khuyến khích.

Dưới đây là một định nghĩa lớp đơn giản.

class MyNewClass:
    '''This is a docstring. I have created a new class'''
    pass

Một lớp tạo ra một không gian tên cục bộ mới nơi tất cả các thuộc tính của nó được xác định. Các thuộc tính có thể là dữ liệu hoặc chức năng.

Ngoài ra còn có các thuộc tính đặc biệt trong đó bắt đầu với Double nhấn mạnh

class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
0. Ví dụ,
class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
1 cung cấp cho chúng ta tài liệu của lớp đó.

Ngay khi chúng tôi xác định một lớp, một đối tượng lớp mới được tạo với cùng tên. Đối tượng lớp này cho phép chúng tôi truy cập các thuộc tính khác nhau cũng như khởi tạo các đối tượng mới của lớp đó.

class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]

Đầu ra

10

This is a person class

Tạo một đối tượng trong Python

Chúng tôi đã thấy rằng đối tượng lớp có thể được sử dụng để truy cập các thuộc tính khác nhau.

Nó cũng có thể được sử dụng để tạo các phiên bản đối tượng mới [khởi tạo] của lớp đó. Quy trình để tạo một đối tượng tương tự như một cuộc gọi chức năng.

>>> harry = Person[]

Điều này sẽ tạo ra một thể hiện đối tượng mới có tên Harry. Chúng ta có thể truy cập các thuộc tính của các đối tượng bằng tiền tố tên đối tượng.

Các thuộc tính có thể là dữ liệu hoặc phương thức. Các phương thức của một đối tượng là các chức năng tương ứng của lớp đó.

Điều này có nghĩa là để nói, vì

class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
2 là một đối tượng hàm [thuộc tính của lớp],
class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
2 sẽ là một đối tượng phương thức.

class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# create a new object of Person class
harry = Person[]

# Output: 
print[Person.greet]

# Output: 
print[harry.greet]

# Calling object's greet[] method
# Output: Hello
harry.greet[]

Đầu ra


Hello

Tạo một đối tượng trong Python

Chúng tôi đã thấy rằng đối tượng lớp có thể được sử dụng để truy cập các thuộc tính khác nhau.

Nó cũng có thể được sử dụng để tạo các phiên bản đối tượng mới [khởi tạo] của lớp đó. Quy trình để tạo một đối tượng tương tự như một cuộc gọi chức năng.

Điều này sẽ tạo ra một thể hiện đối tượng mới có tên Harry. Chúng ta có thể truy cập các thuộc tính của các đối tượng bằng tiền tố tên đối tượng.

Các thuộc tính có thể là dữ liệu hoặc phương thức. Các phương thức của một đối tượng là các chức năng tương ứng của lớp đó.

Điều này có nghĩa là để nói, vì
class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
2 là một đối tượng hàm [thuộc tính của lớp],
class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
2 sẽ là một đối tượng phương thức.

Bạn có thể nhận thấy tham số

class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
4 trong định nghĩa chức năng bên trong lớp nhưng chúng tôi gọi phương thức chỉ đơn giản là
class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
5 mà không có bất kỳ đối số nào. Nó vẫn hoạt động.

Điều này là do, bất cứ khi nào một đối tượng gọi phương thức của nó, chính đối tượng được truyền như là đối số đầu tiên. Vì vậy,

class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
5 chuyển thành
class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
7.

Nói chung, gọi một phương thức có danh sách N đối số tương đương với việc gọi hàm tương ứng với danh sách đối số được tạo bằng cách chèn đối tượng của phương thức trước đối số đầu tiên.

class ComplexNumber:
    def __init__[self, r=0, i=0]:
        self.real = r
        self.imag = i

    def get_data[self]:
        print[f'{self.real}+{self.imag}j']


# Create a new ComplexNumber object
num1 = ComplexNumber[2, 3]

# Call get_data[] method
# Output: 2+3j
num1.get_data[]

# Create another ComplexNumber object
# and create a new attribute 'attr'
num2 = ComplexNumber[5]
num2.attr = 10

# Output: [5, 0, 10]
print[[num2.real, num2.imag, num2.attr]]

# but c1 object doesn't have attribute 'attr'
# AttributeError: 'ComplexNumber' object has no attribute 'attr'
print[num1.attr]

Đầu ra

2+3j
[5, 0, 10]
Traceback [most recent call last]:
  File "", line 27, in 
    print[num1.attr]
AttributeError: 'ComplexNumber' object has no attribute 'attr'

Tạo một đối tượng trong Python

Chúng tôi đã thấy rằng đối tượng lớp có thể được sử dụng để truy cập các thuộc tính khác nhau.

Nó cũng có thể được sử dụng để tạo các phiên bản đối tượng mới [khởi tạo] của lớp đó. Quy trình để tạo một đối tượng tương tự như một cuộc gọi chức năng.

Điều này sẽ tạo ra một thể hiện đối tượng mới có tên Harry. Chúng ta có thể truy cập các thuộc tính của các đối tượng bằng tiền tố tên đối tượng.

>>> num1 = ComplexNumber[2,3]
>>> del num1.imag
>>> num1.get_data[]
Traceback [most recent call last]:
...
AttributeError: 'ComplexNumber' object has no attribute 'imag'

>>> del ComplexNumber.get_data
>>> num1.get_data[]
Traceback [most recent call last]:
...
AttributeError: 'ComplexNumber' object has no attribute 'get_data'

Các thuộc tính có thể là dữ liệu hoặc phương thức. Các phương thức của một đối tượng là các chức năng tương ứng của lớp đó.

>>> c1 = ComplexNumber[1,3]
>>> del c1
>>> c1
Traceback [most recent call last]:
...
NameError: name 'c1' is not defined

Điều này có nghĩa là để nói, vì

class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
2 là một đối tượng hàm [thuộc tính của lớp],
class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
2 sẽ là một đối tượng phương thức.

Bạn có thể nhận thấy tham số

class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
4 trong định nghĩa chức năng bên trong lớp nhưng chúng tôi gọi phương thức chỉ đơn giản là
class Person:
    "This is a person class"
    age = 10

    def greet[self]:
        print['Hello']


# Output: 10
print[Person.age]

# Output: 
print[Person.greet]

# Output: "This is a person class"
print[Person.__doc__]
5 mà không có bất kỳ đối số nào. Nó vẫn hoạt động.

Sự phá hủy tự động này của các vật thể không được giới thiệu trong Python còn được gọi là bộ sưu tập rác.

Xóa các đối tượng trong Python sẽ loại bỏ tên liên kết

Tại sao trong Python mọi thứ là một đối tượng?

Tất cả mọi thứ là một đối tượng trong các ngôn ngữ lập trình hướng đối tượng như Python, một đối tượng là một thực thể chứa dữ liệu cùng với siêu dữ liệu và/hoặc chức năng liên quan. Trong Python, mọi thứ đều là một đối tượng, có nghĩa là mọi thực thể đều có một số siêu dữ liệu [được gọi là thuộc tính] và chức năng liên quan [được gọi là phương thức].every entity has some metadata [called attributes] and associated functionality [called methods].

Điều gì xác định một đối tượng trong Python?

Các đối tượng Python và các lớp Một đối tượng chỉ đơn giản là một tập hợp dữ liệu [biến] và phương thức [hàm] hoạt động trên các dữ liệu đó.Tương tự, một lớp là một bản thiết kế cho đối tượng đó.a collection of data [variables] and methods [functions] that act on those data. Similarly, a class is a blueprint for that object.

Là đối tượng Python hay chức năng?

Python là một ngôn ngữ hướng đối tượng.Bạn có thể thực hiện lập trình chức năng trong đó.Nó được thiết kế, tuy nhiên, để ưu tiên lập trình dựa trên đối tượng.object-oriented language. You can do functional programming in it. It is designed, however, to prioritize object-based programming.

Tại sao Python được gọi là định hướng đối tượng?

Python, giống như mọi ngôn ngữ hướng đối tượng khác, cho phép bạn xác định các lớp để tạo các đối tượng.Các lớp Python được xây dựng là các loại dữ liệu phổ biến nhất trong Python, chẳng hạn như chuỗi, danh sách, từ điển, v.v.Một lớp là một tập hợp các biến thể hiện và các phương thức liên quan xác định một loại đối tượng cụ thể.allows you to define classes to create objects. In-built Python classes are the most common data types in Python, such as strings, lists, dictionaries, and so on. A class is a collection of instance variables and related methods that define a particular object type.

Bài Viết Liên Quan

Chủ Đề