你能给我一个全局变量、成员变量和实例变量高亮的程序示例吗?我不确定我是否会在上下文中认出它们。最好是Python,但也可以是其他类似的编程语言。
您在一个问题下问了很多问题!我将尝试回答每一个问题:)
变量-全局与局部
全局变量是指范围为全局的变量,即在整个程序中可用的变量。
相比之下,局部变量是那些存在于一个特定范围、函数、循环内、特定条件内的变量。
以下是示例:
glb_var_1 = "some value"
glb_var_2 = "some other value"
def f1():
local_var_1 = "this is local inside f1"
print("f1(): We can use here all variables defined locally, i.e. inside f1():", local_var_1)
print("f1(): We can use global var anywhere in program:", glb_var_1)
def f2():
local_var_1 = "this is local inside f2"
glb_var_1 = "this is local variable which is hiding global var of same name"
print("f2(): locally inside f2():", local_var_1)
print("f2(): same name as global var, but local to f2():", glb_var_1)
def f3():
print("f3(): global var value would be one defined globally, not the one as defined in f2():", glb_var_1)
事实上,在Python中,有一些函数可以为您提供定义的所有全局变量和局部变量的列表。这些功能是:
CCD_ 1和CCD_
成员变量
成员变量只是在类中定义的那些变量。这些变量可以在类的方法中的任何地方使用,也可以从类的对象名中使用。
下面的例子说明了这一点:
class SomeClass(object):
def __init__(self):
self.member_var_1 = "some value"
self.member_var_2 = "some other value"
def method1(self):
print("Could use any member variables here:", self.member_var_1)
self.member_var_1 = "new value"
def method2(self):
print("If this method is called after method1, we will get new value:", self.member_var_1)
# create object/instance of SomeClass
obj = SomeClass()
# could also use member variables like below
obj.member_var_1 = "new value modified outside method"
# similar to how we call the method of a class
obj.method2()
类变量与实例变量
我们在上面的代码列表中看到的成员变量只不过是实例变量。类变量是那些在类级别可用的变量。这意味着,该类的所有实例都是一样的。我们也可以使用类变量,而不考虑任何类实例。
下面的例子可以更好地解释它:
class SomeClass(object):
class_var_1 = "some value"
class_var_2 = "some other value"
def some_method(self):
print("Could use all class members, but need to use special syntax:", SomeClass.class_var_1)
print("Outside class method, no instance created, still can use class member:", SomeClass.class_var_1)
obj = SomeClass()
obj.some_method()
我希望你现在明白了:)