Python có biến tĩnh không?

Trong bài viết này, chúng ta đã khám phá Biến lớp tĩnh trong Python cùng với các ví dụ mã. Chúng tôi đã đề cập đến các trường hợp khác nhau như truy cập biến lớp bên trong và bên ngoài lớp

Mục lục
  1. đẳng cấp là gì?
  2. đồ vật là gì
  3. Biến tĩnh là gì?
  4. Tạo biến tĩnh trong python
  5. Phân loại biến tĩnh trong python
  6. Truy cập biến lớp bên trong lớp
  7. Truy cập biến lớp bên ngoài lớp
  8. Câu hỏi

Để biết về biến lớp tĩnh trước tiên chúng ta cần biết về lớp và đối tượng là gì

Đẳng cấp là gì?

Một lớp giống như một bản thiết kế để tạo một đối tượng.
Tất cả các lớp đều có một hàm gọi là init[], hàm này luôn được thực thi khi lớp được bắt đầu.

Đối tượng là gì?

Đối tượng là thể hiện của một lớp cụ thể.
Mọi phần tử khác trong Python sẽ là đối tượng của một lớp nào đó

Vì vậy, bây giờ chúng ta có ý tưởng về lớp và các đối tượng, hãy xem Biến lớp tĩnh

biến tĩnh

Biến tĩnh còn được gọi là biến Lớp là các biến có một bản sao duy nhất có sẵn cho tất cả các đối tượng của lớp trong khi ở các biến Phiên bản là các biến có bản sao riêng lẻ có sẵn cho mọi đối tượng của lớp.
Bất cứ khi nào chúng ta khai báo một biến bên trong lớp tĩnh, nó sẽ lưu một bản sao duy nhất bên trong bộ nhớ heap và nó được chia sẻ với tất cả các đối tượng của lớp đó, vì vậy nếu sửa đổi biến thì nó sẽ được sửa đổi cho tất cả các đối tượng của lớp đó. .

Điều đó có nghĩa là nếu chúng ta sửa đổi bản sao của biến lớp trong một thể hiện, nó sẽ ảnh hưởng đến tất cả các bản sao trong thể hiện khác

đây là ví dụ thực tế về biến tĩnh ,
Hãy để một cửa hàng Nhạc cụ được đại diện bởi một lớp Nhạc cụ.
Tất cả Khách hàng mua Nhạc cụ của cửa hàng đó sẽ được cung cấp khóa học miễn phí về học nhạc cụ. Lớp có thể có một biến tĩnh có giá trị là “có” cho tất cả các đối tượng. Và lớp cũng có thể có các thành viên không tĩnh như Tên nhạc cụ và Đếm.

Thí dụ,

class Instrument:
    sp='Yes'   #class variable [variable can be of any type] 
    #Outside of constructor inside of class
    def __int__[self]:
        self.model='Guitar' #Instance variable
        #variable instance should be inside the constructor
    def show_model[self]:
        print[self.model] #accessing Instance variable

piano=Instrument[] #Creation of object

Tạo một biến tĩnh trong Python

chúng ta có thể truy cập các biến tĩnh bằng định dạng - "className. biến tĩnh"

1. Khai báo biến trong Class

Không giống như các ngôn ngữ lập trình khác, python không có từ khóa tĩnh, thay vào đó chúng ta chỉ cần khai báo một biến bên trong lớp, nhưng nó không được ở bên trong bất kỳ phương thức nào và biến đó sẽ được gọi là biến tĩnh hoặc biến lớp

Đây là mã trình diễn cho điều đó


# Python program to show that the variables with a value
# assigned in class declaration, are class variables

# Class for different type of Instrument
class Instrument:
   courseoffered = 'yes'                  # Class Variable
   def __init__[self,price,tax]:
       self.Instrumentname = Instrumentname      # Instance Variable
       self.count = count           # Instance Variable

# Objects of CSStudent class
a = Instrument['Guitar', 1]
b = Instrument['piaono', 2]

print[a.courseoffered]  # prints "yes"
print[b.courseoffered]  # prints "yes"
print[a.Instrumentname]    # prints "Guitar"
print[b.Instrumentname]    # prints "Piaono"
print[a.count]    # prints "1"
print[b.count]    # prints "2"

# Class variables can be accessed using class
# name also
print[Instrument.courseoffered] # prints "yes"

# Now if we change the courseoffered for just a it won't be changed for b
a.courseoffered = 'No'
print[a.courseoffered] # prints 'no'
print[b.courseoffered] # prints 'yes'

# To change the courseoffered for all instances of the class we can change it
# directly from the class
instrument.courseoffered = 'yes'

print[a.courseoffered] # prints 'yes'
print[b.courseoffered] # prints 'no'

2. Sử dụng phương thức hasattr[]

hassttr[] method is an inbuilt function in python which is used to check whether the object has the static class variable created or not . It returns True if the object has the static class variable created otherwise  it will  returns False. 

Phân loại biến tĩnh trong Python

1. biến lớp nên được tạo bên trong lớp nhưng bên ngoài phương thức
2. biến tĩnh hoặc biến lớp có thể được truy cập bên trong lớp cũng như bên ngoài nhưng không trực tiếp với thể hiện
3. Tất cả các đối tượng của lớp chia sẻ cùng một bản sao của biến tĩnh.

Truy cập các biến lớp tĩnh trong Python

  1. Phương pháp trong lớp
  2. bên ngoài lớp học

Với phương pháp lớp

Để truy cập biến lớp, chúng ta cần phương thức lớp với tham số đầu tiên là cls, sau đó chúng ta có thể truy cập biến bằng cách sử dụng cls. tên biến
Để truy cập biến lớp, chúng tôi sử dụng trình trang trí @classmethod

Đây là mã trình diễn cho điều đó


class Instrument:
    fp='yes' # class variable
    def __init__[self]:
        self.model='Guitar'
    def show_model[self]:
        print[self.model]
    @classMethod  #class Method
    def is_fp[cls]:
        cls.fp   # accessing class variable inside the class
choir.Instrument[]

2. ngoài giờ học

chúng ta có thể truy cập lớp hoặc biến tĩnh bằng tên lớp. tên_biến


class Instrument:
    fp='yes' #class variable
    @classmethod  #class method
    def show[cls]:
        cls.fp # accessing class variable inside class method
guitar= Instrument[]
Instrument.fp # accessing class variable outside class

Câu hỏi

Một biến được định nghĩa bên trong một phương thức và chỉ thuộc về thể hiện hiện tại của một lớp được gọi là?

Biến tĩnh trong ví dụ Python là gì?

Khi chúng ta khai báo một biến bên trong một lớp nhưng bên ngoài bất kỳ phương thức nào , nó được gọi là lớp hoặc biến tĩnh trong python. Lớp hoặc biến tĩnh có thể được giới thiệu thông qua một lớp nhưng không trực tiếp thông qua một thể hiện.

Biến tĩnh và biến động trong Python là gì?

Nếu loại của biến được kiểm tra trong thời gian chạy mã thì ngôn ngữ được gọi là ngôn ngữ được nhập động. Nếu loại của biến được kiểm tra tại thời điểm biên dịch mã thì ngôn ngữ được gọi là ngôn ngữ được nhập tĩnh

Bạn có thể thay đổi biến tĩnh trong Python không?

Các biến tĩnh chỉ tồn tại ở cấp lớp và không được khởi tạo. Nếu bạn thay đổi một biến tĩnh trong một phiên bản của lớp, thay đổi đó sẽ ảnh hưởng đến giá trị của nó trong tất cả các phiên bản khác . Các phương thức tĩnh không đề cập đến bất kỳ thể hiện nào của lớp và có thể được gọi bên ngoài nó.

Các biến tĩnh được lưu trữ trong Python ở đâu?

Các biến tĩnh được lưu trữ trong đoạn dữ liệu của mã . Trên thực tế, bộ nhớ được chia thành 3 phần chính. Văn bản, Dữ liệu và Ngăn xếp/Đống.

Chủ Đề