Hướng dẫn objects in python are declared using the keyword class. - các đối tượng trong python được khai báo bằng cách sử dụng lớp từ khóa.

Các lớp và đối tượng PythonClasses and Objects


Các lớp/đối tượng Python

Python là một ngôn ngữ lập trình định hướng đối tượng.

Hầu hết mọi thứ trong Python là một đối tượng, với các thuộc tính và phương pháp của nó.

Một lớp giống như một hàm tạo đối tượng hoặc "bản thiết kế" để tạo các đối tượng.


Tạo một lớp học

Để tạo một lớp, hãy sử dụng từ khóa

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:

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  x = 5

Hãy tự mình thử »


Tạo đối tượng

Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
print(p1.x)

Hãy tự mình thử »


Tạo đối tượng

Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:

Tạo một đối tượng có tên P1 và in giá trị của X:

p1 = myClass () in (p1.x)

Hàm __init __ ()

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  def __init__(self, name, age):
    self.name = name
    self.age = age

Hãy tự mình thử »

Tạo đối tượng
print(p1.age)

Hãy tự mình thử »

Tạo đối tượng The

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 function is called automatically every time the class is being used to create a new object.



Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:

Tạo một đối tượng có tên P1 và in giá trị của X:

p1 = myClass () in (p1.x)

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  def __init__(self, name, age):
    self.name = name
    self.age = age

Hãy tự mình thử »

Tạo đối tượng

Hãy tự mình thử »

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  def __init__(self, name, age):
    self.name = name
    self.age = age

Hãy tự mình thử »
    return f"{self.name}({self.age})"

Tạo đối tượng

Tạo đối tượng

Hãy tự mình thử »


Tạo đối tượng

Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:

Tạo một đối tượng có tên P1 và in giá trị của X:

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  def __init__(self, name, age):
    self.name = name
    self.age = age

Hãy tự mình thử »
    print("Hello my name is " + self.name)

Tạo đối tượng
p1.myfunc()

Hãy tự mình thử »

Tạo đối tượng The

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 parameter is a reference to the current instance of the class, and is used to access variables that belong to the class.


Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:

Tạo một đối tượng có tên P1 và in giá trị của X:

p1 = myClass () in (p1.x)

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age

Hãy tự mình thử »
    print("Hello my name is " + abc.name)

Tạo đối tượng
p1.myfunc()

Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:


Tạo một đối tượng có tên P1 và in giá trị của X:

p1 = myClass () in (p1.x)


Hàm __init __ ()

Các ví dụ trên là các lớp và đối tượng ở dạng đơn giản nhất của chúng và không thực sự hữu ích trong các ứng dụng thực tế.


Để hiểu ý nghĩa của các lớp, chúng ta phải hiểu hàm __init __ () tích hợp.

Tất cả các lớp có một hàm gọi là __init __ (), luôn được thực thi khi lớp được bắt đầu.


Sử dụng hàm __init __ () để gán các giá trị cho các thuộc tính đối tượng hoặc các hoạt động khác cần thiết để thực hiện khi đối tượng được tạo:

Tạo một lớp có tên là người, sử dụng hàm __init __ () để gán các giá trị cho tên và tuổi:


người lớp: & nbsp; def __init __ (tự, tên, tuổi): & nbsp; & nbsp; & nbsp; self.name = name & nbsp; & nbsp; & nbsp; tự.age = tuổi


Đố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

10

This is a person class
0. Ví dụ,
10

This is a person class
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ì

10

This is a person class
2 là một đối tượng hàm (thuộc tính của lớp),
10

This is a person class
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

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__)
2 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à
10

This is a person class
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,

10

This is a person class
5 chuyển thành
10

This is a person class
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.

Vì những lý do này, đối số đầu tiên của hàm trong lớp phải là chính đối tượng. Đây là quy ước được gọi là bản thân. Nó có thể được đặt tên khác nhưng chúng tôi khuyên bạn nên tuân theo Công ước.

Bây giờ bạn phải quen thuộc với đối tượng lớp, đối tượng thể hiện, đối tượng chức năng, đối tượng phương thức và sự khác biệt của chúng.


Người xây dựng trong Python

Các chức năng lớp bắt đầu với Double UnderCore

10

This is a person class
0 được gọi là các hàm đặc biệt vì chúng có ý nghĩa đặc biệt.

Của một lợi ích cụ thể là hàm

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. Hàm đặc biệt này được gọi bất cứ khi nào một đối tượng mới của lớp đó được khởi tạo.

Loại chức năng này còn được gọi là các hàm tạo trong lập trình hướng đối tượng (OOP). Chúng tôi thường sử dụng nó để khởi tạo tất cả các biế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'

Trong ví dụ trên, chúng tôi đã xác định một lớp mới để thể hiện các số phức. Nó có hai chức năng,

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 để khởi tạo các biến (mặc định về 0) và
>>> harry = Person()
1 để hiển thị số đúng.

Một điều thú vị cần lưu ý trong bước trên là các thuộc tính của một đối tượng có thể được tạo ra một cách nhanh chóng. Chúng tôi đã tạo một thuộc tính mới attr cho đối tượng Num2 và cũng đọc nó. Nhưng điều này không tạo ra thuộc tính đó cho đối tượng num1.


Xóa các thuộc tính và đối tượng

Bất kỳ thuộc tính nào của một đối tượng đều có thể bị xóa bất cứ lúc nào, sử dụng câu lệ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__)
6. Hãy thử những điều sau trên vỏ Python để xem đầu ra.

>>> 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'

Chúng ta thậm chí có thể xóa chính đối tượng, sử dụng câu lệnh DEL.

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

Thật ra, điều đó phức tạp hơn. Khi chúng ta làm

>>> harry = Person()
3, một đối tượng phiên bản mới được tạo trong bộ nhớ và tên C1 liên kết với nó.

Trên lệnh

>>> harry = Person()
4, ràng buộc này được xóa và tên C1 bị xóa khỏi không gian tên tương ứng. Tuy nhiên, đối tượng tiếp tục tồn tại trong bộ nhớ và nếu không có tên nào khác bị ràng buộc với nó, sau đó nó sẽ tự động bị phá hủy.

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.

Hướng dẫn objects in python are declared using the keyword class. - các đối tượng trong python được khai báo bằng cách sử dụng lớp từ khóa.
Xóa các đối tượng trong Python sẽ loại bỏ tên liên kết

Đối tượng có phải là từ khóa trong Python không?

Nó không phải là một từ khóa..

Lớp từ khóa được sử dụng cho trong Python là gì?

Từ khóa lớp được sử dụng để tạo một lớp.Một lớp giống như một hàm tạo đối tượng.Xem ví dụ dưới đây để xem cách chúng ta có thể sử dụng nó để tạo một đối tượng.to create a class. A class is like an object constructor. See the example below to see how we can use it to create an object.

Các lớp học được tuyên bố như thế nào trong Python?

Các lớp và đối tượng Python..
Tạo một lớp học.Để tạo một lớp, hãy sử dụng lớp từ khóa: ....
Tạo đối tượng.Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo các đối tượng: ....
Tham số tự.....
Sửa đổi thuộc tính đối tượng.....
Xóa thuộc tính đối tượng.....
Xóa đối tượng ..

Các đối tượng của một lớp được tuyên bố như thế nào?

Tạo một khai báo đối tượng - Một khai báo biến có tên biến có loại đối tượng.Instantiation - Từ khóa 'mới' được sử dụng để tạo đối tượng.Khởi tạo - Từ khóa 'mới' được theo sau bởi một cuộc gọi đến một hàm tạo.Cuộc gọi này khởi tạo đối tượng mới.A variable declaration with a variable name with an object type. Instantiation − The 'new' keyword is used to create the object. Initialization − The 'new' keyword is followed by a call to a constructor. This call initializes the new object.