多年来,我已经接触过类似C/C++/Java的语法,而Python变量的定义方式让我感到困惑.任何人都可以描述q中提到的三个差异吗?
全局变量就是 - 全局可访问的变量.局部变量是仅可由当前范围访问的变量,例如单个函数定义中使用的临时变量.实例变量(例如:使用self.前缀时)是与对象的特定实例相关联的数据.当然,您还可以通过使用object.xwhere object对该对象的引用来引用对象外部的实例对象.
如果变量带有前缀self,则既不是本地变量也不是全局变量.它是对象的特定实例的构成的一部分.粗略地说,实例变量表示特定对象的属性.
在以下示例中,lx是一个局部变量,是方法的本地变量greet.gx是一个可在模块中的任何位置访问的全局变量,ix是一个实例变量,可以为该对象的每个实例提供唯一值.在对象定义内部引用时,您将ix使用前缀引用self,并在具有对象引用前缀的对象外部引用.
gx = "hello"
class Foo:
def __init__(self, who):
self.ix = who
def greet(self):
lx = "%s, %s" % (gx, self.ix)
return lx
foo = Foo("world")
print foo.greet()
print foo.ix
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6850 次 |
| 最近记录: |