📜  Python|在类和方法内外使用变量

📅  最后修改于: 2022-05-13 01:54:47.979000             🧑  作者: Mango

Python|在类和方法内外使用变量

在Python中,我们可以在类外、类内、甚至方法内定义变量。让我们看看,如何在整个程序中使用和访问这些变量。

类外定义的变量:

类外定义的变量,只要写下变量名,就可以被任何类或类中的任何方法访问。

# Program to demonstrate 'Variable 
# defined outside the class'
  
# Variable defined outside the class.
outVar = 'outside_class'    
print("Outside_class1", outVar)
  
''' Class one '''
class Geek:
    print("Outside_class2", outVar)
  
    def access_method(self):
        print("Outside_class3", outVar)
  
# Calling method by creating object
uac = Geek()
uac.access_method()
  
''' Class two '''
class Another_Geek_class:
    print("Outside_class4", outVar) 
  
    def another_access_method(self):
        print("Outside_class5", outVar)
  
# Calling method by creating object
uaac = Another_Geek_class()
uaac.another_access_method()
输出:
Outside_class1 outside_class
Outside_class2 outside_class
Outside_class3 outside_class
Outside_class4 outside_class
Outside_class5 outside_class


类内部定义的变量:

可以使用类的实例在类内(包括所有方法)访问在类内部但在方法外部定义的变量。例如 – self.var_name。
如果您想在类之外使用该变量,则必须将该变量声明为全局变量。然后可以在类内部和外部使用其名称访问该变量,而不是使用该类的实例。

# Program to demonstrate 'Variable 
# defined inside the class'
  
# print("Inside_class1", inVar) # Error
  
''' Class one'''
class Geek:
  
    # Variable defined inside the class.
    inVar = 'inside_class'
    print("Inside_class2", inVar)
  
    def access_method(self):
        print("Inside_class3", self.inVar)
  
uac = Geek()
uac.access_method()
  
''' Class two '''
class another_Geek_class:
    print()
# print("Inside_class4", inVar) # Error
  
    def another_access_method(self):
        print()
# print("Inside_class5", inVar) # Error
  
uaac = another_Geek_class()
uaac.another_access_method()
输出:
Inside_class2 inside_class
Inside_class3 inside_class

标记为错误的语句将在执行时产生错误,因为那里无法访问变量。


方法内部定义的变量:

在方法内定义的变量只能通过简单地使用变量名在该方法内访问。示例 – var_name。
如果要在方法或类之外使用该变量,则必须将该变量声明为全局变量。

# Program to demonstrate 'Variable 
# defined inside the method'
  
# print("Inside_method1", inVar) # Error
  
'''class one'''
class Geek:
    print()
# print("Inside_method2", inVar) # Error
  
    def access_method(self):
  
        # Variable defined inside the method.
        inVar = 'inside_method'
        print("Inside_method3", inVar)
  
uac = Geek()
uac.access_method()
  
'''class two'''
class AnotherGeek:
    print()
# print("Inside_method4", inVar) # Error
  
    def access_method(self):
        print()
# print("Inside_method5", inVar) # Error
  
uaac = AnotherGeek()
uaac.access_method()
输出:
Inside_method3 inside_method

标记为错误的语句将在执行时产生错误,因为那里无法访问变量。

概括: