在此 python 代码中查找静态变量、实例变量和局部变量
Find Static, instance and local variables in this python code
这是在 InfyTQ 模拟测试中提出的 python 代码问题。
class classOne:
__var_one = 1001
def __init__(self,var_two):
self.__var_two = var_two
self.__var_five = 5
def method_one(self):
var_four = 50
self.__var_five = ClassOne.__var_one + self.__var_two + var_four
现在,我想问一下变量是否
函数 method_one
的 self.__var_five
是否应该被认为是一个新的实例变量?
因为__init__
函数中已经有一个self.__var_five
。
此外,
我从下面给出的代码中学习了全局、局部、静态和实例变量的概念。
正确吗?
#global, local, static, instance variable.
#global variable are defined at the top of program or defined using keyword:global
global global_var1 = 0
global_var2 = 1
def local_variable:
#local variable are defined inside of a function.
local_var1 = 2
class static_instance:
#static/classs variable are defined inside of a class.
static_var1 = 3
def __init__(self):
#all variables defined in the function of a class starting with self.
self.instance_var1 = 4
def static(self):
self.instance_var2 = 5
local_var2 = 6 #local variable as it is in a function.
static_var2 = 6
它是同一个实例变量(在 Python 中称为 属性 )。 method_one
只是在更新它的值。
你在第二个代码块中的大部分理解都是正确的。但是,当方法执行时:
self.static_var1 = 4
它创建一个名为 static_var1
的实例属性。这与在方法外部声明的 class 属性无关,该属性在所有不重新分配它的实例之间共享。但是由于您在 __init__()
方法中进行赋值,所有实例都有自己的属性。访问静态值的唯一方法是 static_instance.static_var1
.
这是在 InfyTQ 模拟测试中提出的 python 代码问题。
class classOne:
__var_one = 1001
def __init__(self,var_two):
self.__var_two = var_two
self.__var_five = 5
def method_one(self):
var_four = 50
self.__var_five = ClassOne.__var_one + self.__var_two + var_four
现在,我想问一下变量是否
函数 method_one
的 self.__var_five
是否应该被认为是一个新的实例变量?
因为__init__
函数中已经有一个self.__var_five
。
此外, 我从下面给出的代码中学习了全局、局部、静态和实例变量的概念。 正确吗?
#global, local, static, instance variable.
#global variable are defined at the top of program or defined using keyword:global
global global_var1 = 0
global_var2 = 1
def local_variable:
#local variable are defined inside of a function.
local_var1 = 2
class static_instance:
#static/classs variable are defined inside of a class.
static_var1 = 3
def __init__(self):
#all variables defined in the function of a class starting with self.
self.instance_var1 = 4
def static(self):
self.instance_var2 = 5
local_var2 = 6 #local variable as it is in a function.
static_var2 = 6
它是同一个实例变量(在 Python 中称为 属性 )。 method_one
只是在更新它的值。
你在第二个代码块中的大部分理解都是正确的。但是,当方法执行时:
self.static_var1 = 4
它创建一个名为 static_var1
的实例属性。这与在方法外部声明的 class 属性无关,该属性在所有不重新分配它的实例之间共享。但是由于您在 __init__()
方法中进行赋值,所有实例都有自己的属性。访问静态值的唯一方法是 static_instance.static_var1
.