
正文
python类中函数变量 python函数变量类型
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
python函数中局部变量与全局变量遵守规则
(1)简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放,如有全局同名变量,其值不变。
(2)简单数据类型变量在用global保留字声明后,作为全局变量使用,函数退出后该变量保留且值被函数改变。
(3)对于组合数据类型的全局变量,如果在函数内部没有被真实创建的同名变量,则函数内部可以直接使用并修改全局变量的值。
(4)如果函数内部真实创建了组合数据类型变量,无论是否有同名全局变量,函数仅对局部变量进行操作,函数退出后局部变量被释放,全局变量值不变。
*《python语言程序设计基础》.高等教育出版社
相关问答
Q1: 对python 中class与变量的使用方法详解
python中的变量定义是很灵活的python类中函数变量,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键。
枚举python类中函数变量了各种情况,没有办法全部枚举,但大部分情况应该都已经包含了。
1. 类变量:能够通过类名或者object的self来访问到,在类的内部和外部均可达,比如class_var_1
2. 对象变量:可以通过对象的self来使用的变量,通过constructor一路走向去的的self初次被赋值的变量都会成为对象变量,比如object_var_1, object_var_2, object_var_3, object_var_4
3. 内部变量:可以在函数中定义,并加上self前缀,在初次调用过定义的函数后,就可以在后面的对象的函数中被使用,比如internal_var_1
4. 局部变量:在函数内部定义,并使用的变量,在使用完之后就会被回收对类及object不可见
5. 全局变量:定义在类或者函数外部,作用域在变量被定义之后的任意代码段,比如:global_var_1
Q2: python中变量的引用、可变和不可变类型、局部变量和全局变量
变量的引用
变量和数据都是保存在内存中的
变量和数据是分开存储的
数据保存在内存中某个位置python类中函数变量,通过地址来标记
变量保存的是数据的地址python类中函数变量,通过地址可以找到数据在内存空间的位置
把变量保存数据地址的过程称为引用
变量的重新赋值修改的是变量中引用数据的内存地址
变量之间的赋值实际是引用的传递
函数参数的传递,本质也是引用的传递
函数的返回值本身也是引用的传递
可变和不可变类型
不可变类型,内存中的数据不允许被修改:数字类型(int,bool,float,complex,long(2,x)、字符串、元组(tuple)
可变类型,内存中的数据可以被修改:列表list、字典dict
无论是可变还是不可变数据类型,通过赋值语句,都会改变变量的引用
Hash函数只能接收不可变数据类型,字典的键也只能是不可变数据类型,字典的value值可以是任意数据类型
局部变量
1.在函数内部定义的变量就是局部变量(作用范围只能是当前函数内部)
2.在函数外部无法直接访问局部变量
3.不同的函数中可以定义同名的局部变量
4.局部变量的生命周期:从定义变量时开始,到函数运行结束
全局变量
1.在所有函数外边定义的变量就是全局变量
2.让所有函数都能访问到,可以作为函数通信的桥梁
3.一般情况下,为python类中函数变量了和普通变量的区别,需要加上g_或gl_前缀
4.全局变量一般放在所有函数的最上面
5.在函数内部修改全局变量,必须要加上global关键字,如果不加global只是定义python类中函数变量了一个同名的局部变量
函数的多个返回值
Q3: python中函数变量作用域和类变量作用域怎么搞都错,烦躁中?
python中python类中函数变量,变量的作用域要弄清楚。只有module、class、def、lambda才会引入作用域python类中函数变量,其python类中函数变量他的代码块是不会引入作用域的。
1
图一中python类中函数变量,你在函数中声明python类中函数变量了d为全局变量,但这样是无效的,程序运行结果,已经说明这一点。
global这个关键字,是用来“在函数中修改全局变量值”的声明,而不是“在局部函数中定义一个全局变量”的声明。这里要注意一下。
你可以再局部函数外面声明变量d,再加上你原先的函数,就可以修改、访问这个变量了。
2
在类中函数的变量,作用域只在函数中。图二中,jian这个变量分别在yu(),yu1()两个函数中,是处于不同的定义域中的,是不能相互访问的。
所以,在各自函数中,只有先定义了jian变量,才能再使用。
如果想在yu1()中访问yu()中的jian变量,就需要将jian变量变成全局变量,即在class中定义一个全局变量jian,这样yu1(),yu()函数都可以访问了
Q4: python 类中的变量传递给类中的函数
为python类中函数变量了把类中python类中函数变量的变量传递给类中的函数python类中函数变量,我们需要用到3个特定格式
① 第一个格式 @classmethod 的中文意思就是“类方法”python类中函数变量,@classmethod声明python类中函数变量了函数1是类方法,这样才能允许函数1使用类属性中的数据。
② 第二个格式 cls 的意思是class的缩写。如果类方法函数1想使用类属性(也就是类中的变量),就要写上cls为函数1的第一个参数,也就是把这个类作为参数传给自己,这样就能被允许使用类中的数据。
③ 第三个格式是 cls.变量 。类方法想使用类属性的时候,需要在这些变量名称前加上cls. 这就好比类方法和类之间的约法三章,所以但凡有任何格式错误都会报错。
如果缺①,即缺了“@classmethod”,类方法就不能直接利用类中的属性,于是报错
关于python类中函数变量和python函数变量类型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






