Python中的类变量、实例变量、局部变量

Python012

Python中的类变量、实例变量、局部变量,第1张

类体内,所有函数外定义

所有实例对象共享。

只有通过类名调用时才能修改,通过实例调用时无法修改。

假设某类变量名为“name",如果用该类的某个实例x来为name赋值:x.name = 'xxx',实质是为该实例新定义了一个变量name。且之后无法再通过该实例调用类变量name了。因为使用实例调用某名为“xxx”变量时,若该实例没有名为“xxx”的实例变量,则会去调用名为“xxx”的类变量;若有该名称的实例变量,则该实例无法再直接调用该名称对应的类变量。因此也不推荐通过实例来调用类变量。

即:通过类实例修改类变量的值时,实际是在定义新的与类变量同名的实例变量。

类体内,某函数(一般是__ init __ ())内定义。 “self.变量名”

因为是属于某个具体实例的,因此不能通过类名访问。

如果不在__ init __ () 中调用(该函数会在创建实例时自动调用一次),则只有调用该实例中定义目标实例变量的那个函数后,才能使用目标实例变量。因此最好在__ init __ () 中定义实例变量。

类体内,某函数内定义。

直接在函数内用“变量名=值”的方式进行定义。

函数执行完毕后,该局部变量即被销毁。

python在一个模块中调用另一个模块中的变量步骤如下:

1、要实现变量的深度拷贝,需要使用到copy模块,导入这个模块。

2、定义一个列表变量A并进行赋值,然后将变量A赋值给变量B。

3、接着调用id()方法,分别打印变量A和变量B的id值,查看是否一致。

4、保存代码并直接使用Run这个python文件,发现打印的结果一致。

5、调用copy模块中的deepcopy()方法,按照对应的值赋值给变量C。

6、再次分别打印变量A和变量C的id值,结果发现它们不一致,说明这是深度拷贝。