Hướng dẫn python global class function - hàm lớp toàn cầu của python

Một biến toàn cầu là một biến có thể nhìn thấy và có thể được sử dụng trong mọi phần của chương trình.

Các biến toàn cầu cũng không được xác định trong bất kỳ chức năng hoặc phương thức nào. Mặt khác, các biến cục bộ được xác định trong các hàm và chỉ có thể được sử dụng trong (các) hàm đó.

Một phạm vi hoặc môi trường toàn cầu bao gồm một tập hợp các biến có thể nhìn thấy trong suốt chương trình. Trong Python, phạm vi có thể là một khu vực trong chương trình Python nơi có thể truy cập và sử dụng một biến số, chức năng hoặc mô -đun.

Nói chung, trong lập trình, phạm vi toàn cầu thay thế cả phạm vi khối và phạm vi cục bộ.

Trong lập trình, các biến được gọi là vị trí bộ nhớ có thể được sử dụng để lưu trữ các giá trị. Tuy nhiên, trong Python, các biến được tạo trong một lớp được gọi là biến lớp, trong khi các biến được khai báo theo một đối tượng cụ thể có thể được gọi là biến thể hiện.

Mặc dù các biến lớp thường được khai báo theo định nghĩa lớp bên ngoài tất cả các phương thức và các biến khác, các biến lớp toàn cầu được khai báo bên ngoài một lớp. Chúng có thể được truy cập bằng bất kỳ phương pháp và lớp.

Các biến toàn cầu được định nghĩa như sau.

model = "SPlaid"
class Cars:

Như được hiển thị bên dưới, các biến toàn cầu có thể được truy cập bởi bất kỳ lớp hoặc phương thức nào trong một lớp bằng cách gọi tên biến. Các biến toàn cầu cũng có thể được truy cập bằng nhiều lớp và phương thức cùng một lúc.

car_type = "SUV"
print("Outside all classes", car_type)
class Tesla:
    print("Type of the car within the Tesla class is:", car_type)
    def __init__(self, car_type):
        self.car_type = car_type

    def display_tesla(self):
        print("Type of car within a Tesla method:", car_type )
   
    #creating object to access method
    #
tsl_object = Tesla(car_type)

tsl_object.display_tesla()
 
class Lucid:
    print("Type of the car within the Lucid class is:", car_type)

    def __init__(self, car_type):
        self.car_type = car_type
 

    def display_lucid(self):
        print("Type of the car within the Lucid method:", car_type)
 
#creating an object to access the method within the Lucid Class.
lucid_object = Lucid(car_type)
lucid_object.display_lucid()

Output:

Outside all classes SUV
Type of the car within the Tesla class is: SUV
Type of car within a Tesla method: SUV
Type of the car within the Lucid class is: SUV
Type of the car within the Lucid method: SUV

Xác định các biến lớp là biến toàn cầu

Chúng tôi cũng có thể sửa đổi một biến phạm vi cục bộ để có sẵn trong phạm vi toàn cầu bằng cách sử dụng từ khóa

car_type = "SUV"
print("Outside all classes", car_type)
class Tesla:
    print("Type of the car within the Tesla class is:", car_type)
    def __init__(self, car_type):
        self.car_type = car_type

    def display_tesla(self):
        print("Type of car within a Tesla method:", car_type )
   
    #creating object to access method
    #
tsl_object = Tesla(car_type)

tsl_object.display_tesla()
 
class Lucid:
    print("Type of the car within the Lucid class is:", car_type)

    def __init__(self, car_type):
        self.car_type = car_type
 

    def display_lucid(self):
        print("Type of the car within the Lucid method:", car_type)
 
#creating an object to access the method within the Lucid Class.
lucid_object = Lucid(car_type)
lucid_object.display_lucid()
1.

Bất kỳ biến nào được xác định trong một hàm được coi là một biến cục bộ và do đó chỉ có thể được sử dụng trong phạm vi cục bộ. Tuy nhiên, sử dụng từ khóa toàn cầu, chúng ta có thể thay đổi phạm vi của một biến cục bộ để có thể truy cập được trên toàn cầu.

Tương tự, chúng ta cũng có thể làm cho một biến lớp có thể truy cập bên ngoài lớp đã được xác định bằng cách sử dụng từ khóa toàn cầu. Biến lớp có thể được sử dụng bởi các lớp và phương thức khác bên ngoài lớp cụ thể đó.

Trong đoạn trích bên dưới, chúng tôi sẽ thử và sử dụng một biến lớp bên ngoài lớp. Chúng tôi chắc chắn sẽ nhận được một lỗi cho chúng tôi biết rằng biến không được xác định.

class Tesla:
    #creating a class variable
    speed = 60
 
    print("Acessing speed variable within the class:", speed)
 
    def __init__(self, speed):
        self.speed = speed
 
        def display_speed():
 
            print("Speed of the Tesla is:", speed)
print("Accessing the class variable outside the Tesla Class", speed)

Output:

print("Accessing the class variable outside the Tesla Class", speed)
NameError: name 'speed' is not defined

Như đã thấy trong ví dụ mã ở trên, chúng tôi đang cố gắng truy cập biến lớp được xác định trong lớp Tesla. Tuy nhiên, điều này dẫn đến một lỗi do một biến được khai báo trong một lớp chỉ có thể truy cập được chỉ trong lớp đó.

Nhưng, như đã đề cập trước đây, chúng ta có thể ngăn chặn lỗi này bằng cách sử dụng từ khóa toàn cầu trước khi xác định biến lớp. Chỉ sau đó chúng ta có thể truy cập biến bên ngoài lớp.

class Tesla:
    #creating a class variable and making it a variable
    global speed
    speed = 60
 
 
    print("Accessing speed variable within the class:", speed)
 
    def __init__(self, speed):
        self.speed = speed
 
        def display_speed():
 
            print("Speed of the Tesla is:", speed)
 
print("Accessing the class variable outside of the Tesla class", speed)

Output:

Accessing speed variable within the class: 60
Accessing the class variable outside of the Tesla class 60

Khi chúng tôi đã khai báo biến lớp là biến toàn cầu, nó có thể truy cập bên ngoài lớp của chính nó và trong các lớp khác.

Trong đoạn mã ở trên, chúng tôi truy cập biến tốc độ được xác định là biến toàn cầu trong lớp Tesla từ lớp sáng suốt. Không giống như trong ví dụ trước đó mà chúng tôi gặp lỗi, chúng tôi có thể truy cập biến vì nó hiện có sẵn trong phạm vi toàn cầu.

class Tesla:
    #creating a class variable and making it a global variable
    global speed
    speed = 60
 
 
    print("Acessing speed variable within the class:", speed)
 
    def __init__(self, speed):
        self.speed = speed
 
        def display_speed():
            print("Speed of the Tesla is:", speed)
 
#accessing the speed variable from outside the class
print("Accessing the class variable", speed)
 
class Lucid:
    #accessing the speed variables from a different class
    print("Accessing the speed variable from a different class:", speed)

Output:

Accessing speed variable within the class: 60
Accessing the class variable 60
Accessing the speed variable from a different class: 60

Thật thú vị, các biến toàn cầu được khai báo, chẳng hạn như các biến tốc độ, cũng có thể được truy cập và sử dụng bằng các phương pháp của một lớp khác.

Chẳng hạn, trong hình minh họa mã bên dưới, một phương thức được xác định trong lớp Lucid có quyền truy cập vào biến tốc độ. Điều này chỉ có thể khi từ khóa toàn cầu đi trước một biến lớp trước khi khai báo.

class Tesla:
    #creating a class variable and making it a global variable
    global speed
    speed = 60
 
 
    print("Accessing speed variable within the class:", speed)
 
    def __init__(self, speed):
        self.speed = speed
 
        def display_speed():
 
            print("Speed of the Tesla is:", speed)
 
print("Accessing the class variable", speed)
 
class Lucid:
    print("Accessing the speed variable from a different class:", speed)

    def __init__(self, speed):
        self.speed = speed
   
    def display_tesla_speed(self):
        print("Accessing the speed variable from a method in another class:", speed)
 
lucid_object = Lucid(speed)
lucid_object.display_tesla_speed()

Output:

car_type = "SUV"
print("Outside all classes", car_type)
class Tesla:
    print("Type of the car within the Tesla class is:", car_type)
    def __init__(self, car_type):
        self.car_type = car_type

    def display_tesla(self):
        print("Type of car within a Tesla method:", car_type )
   
    #creating object to access method
    #
tsl_object = Tesla(car_type)

tsl_object.display_tesla()
 
class Lucid:
    print("Type of the car within the Lucid class is:", car_type)

    def __init__(self, car_type):
        self.car_type = car_type
 

    def display_lucid(self):
        print("Type of the car within the Lucid method:", car_type)
 
#creating an object to access the method within the Lucid Class.
lucid_object = Lucid(car_type)
lucid_object.display_lucid()
0

Bài viết liên quan - Biến Python

  • Chuyển đổi một chuỗi thành tên biến trong Python
  • Kiểm tra loại biến trong Python
  • Xác định danh sách là biến toàn cầu trong Python
  • Các biến riêng tư trong Python