Hướng dẫn initialize class variable python - khởi tạo biến lớp python

Giới thiệu

Lập trình hướng đối tượng cho phép các biến được sử dụng ở cấp độ lớp hoặc cấp độ thể hiện. Các biến về cơ bản là các ký hiệu đứng cho một giá trị mà bạn sử dụng trong một chương trình.Variables are essentially symbols that stand in for a value you’re using in a program.

Ở cấp độ lớp, các biến được gọi là các biến lớp, trong khi các biến ở cấp độ được gọi là biến thể hiện.class variables, whereas variables at the instance level are called instance variables.

Khi chúng tôi mong đợi các biến sẽ nhất quán trong các trường hợp hoặc khi chúng tôi muốn khởi tạo một biến, chúng tôi có thể xác định biến đó ở cấp lớp. Khi chúng tôi dự đoán các biến sẽ thay đổi đáng kể qua các trường hợp, chúng tôi có thể xác định chúng ở cấp độ thể hiện.

Một trong những nguyên tắc phát triển phần mềm là nguyên tắc khô khan, viết tắt của don lặp lại chính mình. Nguyên tắc này hướng đến việc hạn chế sự lặp lại trong mã và lập trình hướng đối tượng tuân thủ nguyên tắc khô vì nó làm giảm sự dư thừa.DRY principle, which stands for don’t repeat yourself. This principle is geared towards limiting repetition within code, and object-oriented programming adheres to the DRY principle as it reduces redundancy.

Hướng dẫn này sẽ chứng minh việc sử dụng cả hai biến lớp và thể hiện trong lập trình hướng đối tượng trong Python.

Điều kiện tiên quyết

Bạn nên cài đặt Python 3 và môi trường lập trình được thiết lập trên máy tính hoặc máy chủ của bạn. Nếu bạn không có môi trường lập trình được thiết lập, bạn có thể tham khảo hướng dẫn cài đặt và thiết lập cho môi trường lập trình cục bộ hoặc cho môi trường lập trình trên máy chủ của bạn phù hợp với hệ điều hành của bạn (Ubuntu, Centos, Debian, v.v.)

Biến lớp

Các biến lớp được xác định trong xây dựng lớp. Bởi vì chúng thuộc sở hữu của chính lớp, các biến lớp được chia sẻ bởi tất cả các trường hợp của lớp. Do đó, chúng thường sẽ có cùng giá trị cho mọi trường hợp trừ khi bạn đang sử dụng biến lớp để khởi tạo một biến.

Được xác định bên ngoài tất cả các phương thức, các biến lớp, theo quy ước, thường được đặt ngay bên dưới tiêu đề lớp và trước phương thức cấu trúc và các phương thức khác.

Thông tin: Để làm theo cùng với mã ví dụ trong hướng dẫn này, hãy mở một vỏ tương tác Python trên hệ thống cục bộ của bạn bằng cách chạy lệnh

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
4. Sau đó, bạn có thể sao chép, dán hoặc chỉnh sửa các ví dụ bằng cách thêm chúng sau dấu nhắc
class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
5.
To follow along with the example code in this tutorial, open a Python interactive shell on your local system by running the
class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
4 command. Then you can copy, paste, or edit the examples by adding them after the
class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
5 prompt.

Một biến lớp một mình trông giống như sau:

class Shark:
    animal_type = "fish"

Ở đây, biến

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
6 được gán giá trị
class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
7.

Chúng tôi có thể tạo một thể hiện của lớp

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
8 (chúng tôi sẽ gọi nó là
class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
9) và in biến bằng cách sử dụng ký hiệu chấm:

shark.py

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)

Hãy để chạy chương trình:

  1. python shark.py

Output

fish

Chương trình của chúng tôi trả về giá trị của biến.

Hãy để thêm một vài biến lớp và in chúng ra:

shark.py

class Shark:
    animal_type = "fish"
    location = "ocean"
    followers = 5

new_shark = Shark()
print(new_shark.animal_type)
print(new_shark.location)
print(new_shark.followers)

Giống như với bất kỳ biến nào khác, các biến lớp có thể bao gồm bất kỳ loại dữ liệu nào có sẵn cho chúng tôi trong Python. Trong chương trình này, chúng tôi có chuỗi và một số nguyên. Hãy cùng chạy lại chương trình với lệnh

  1. python shark.py
0 và xem lại đầu ra:

Output

fish ocean 5

Thể hiện của

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
9 có thể truy cập tất cả các biến lớp và in chúng ra khi chúng tôi chạy chương trình.

Các biến lớp cho phép chúng tôi xác định các biến khi xây dựng lớp. Các biến này và các giá trị liên quan của chúng sau đó có thể truy cập được vào từng trường hợp của lớp.

Biến thể hiện

Các biến thể hiện được sở hữu bởi các trường hợp của lớp. Điều này có nghĩa là đối với mỗi đối tượng hoặc thể hiện của một lớp, các biến thể hiện là khác nhau.

Không giống như các biến lớp, các biến thể hiện được xác định trong các phương thức.

Trong ví dụ lớp

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
8 dưới đây,
  1. python shark.py
3 và
  1. python shark.py
4 là các biến thể hiện:

class Shark:
    def __init__(self, name, age):
        self.name = name
        self.age = age

Khi chúng ta tạo một đối tượng

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
8, chúng ta sẽ phải xác định các biến này, được truyền dưới dạng tham số trong phương thức cấu trúc hoặc phương thức khác.

class Shark:
    def __init__(self, name, age):
        self.name = name
        self.age = age

new_shark = Shark("Sammy", 5)

Cũng như các biến lớp, chúng tôi có thể gọi tương tự để in các biến thể hiện:

shark.py

________số 8

Khi chúng tôi chạy chương trình ở trên với

  1. python shark.py
0, chúng tôi sẽ nhận được đầu ra sau:

Output

Sammy 5

Đầu ra chúng tôi nhận được được tạo thành từ các giá trị của các biến mà chúng tôi đã khởi tạo cho thể hiện đối tượng của

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
9.

Hãy để tạo ra một đối tượng khác của lớp

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
8 được gọi là
  1. python shark.py
9:

shark.py

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
0
class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
1

Đối tượng

  1. python shark.py
9, như đối tượng
class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
9 chuyển các tham số cụ thể cho trường hợp đó của lớp
class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
8 để gán các giá trị cho các biến thể hiện.

Các biến thể hiện, được sở hữu bởi các đối tượng của lớp, cho phép mỗi đối tượng hoặc thể hiện có các giá trị khác nhau được gán cho các biến đó.

Làm việc với các biến lớp và trường hợp cùng nhau

Các biến lớp và biến thể hiện thường sẽ được sử dụng cùng một lúc, vì vậy, hãy để xem xét một ví dụ về điều này bằng cách sử dụng lớp

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
8 mà chúng tôi đã tạo. Các ý kiến ​​trong chương trình phác thảo từng bước của quy trình.

shark.py

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
2

Khi chúng tôi chạy chương trình với

  1. python shark.py
0, chúng tôi sẽ nhận được đầu ra sau:

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
3

Ở đây, chúng tôi đã sử dụng cả hai biến lớp và phiên bản trong hai đối tượng của lớp

class Shark:
    animal_type = "fish"

new_shark = Shark()
print(new_shark.animal_type)
8,

Output

fish
6 và
  1. python shark.py
9.

Sự kết luận

Trong lập trình hướng đối tượng, các biến ở cấp lớp được gọi là các biến lớp, trong khi các biến ở cấp đối tượng được gọi là biến thể hiện.

Sự khác biệt này cho phép chúng tôi sử dụng các biến lớp để khởi tạo các đối tượng có giá trị cụ thể được gán cho các biến và sử dụng các biến khác nhau cho mỗi đối tượng với các biến thể hiện.

Sử dụng các biến dành riêng cho lớp và thể hiện có thể đảm bảo rằng mã của chúng tôi tuân thủ nguyên tắc khô để giảm sự lặp lại trong mã.