首页 新闻 搜索 专区 学院

Python 变量定义的一种方式

0
悬赏园豆:5 [已解决问题] 解决于 2020-05-21 17:53

今天看Python程序时遇到一种定义变量的方式没有看明白,希望路过的前辈能指示一下。
简单来说,就是利用【函数名.变量=xxx】 的方式定义一个变量。比如

def fun():
temp += fun.value
其他函数体
if name == "main":
fun.value = 10
fun()

就是上面那样,利用函数fun.value来定义一个变量value的方法,应该叫做个什么方法呢?

Andrew_qian的主页 Andrew_qian | 菜鸟二级 | 园豆:236
提问于:2020-05-20 22:58
< >
分享
最佳答案
1
>>> class A:
...     pass
... 
>>> a = A()
>>> a.x = 'test-x'
>>> a.x
'test-x'
>>> setattr(a, 'y', 'test-y')
>>> a.y
'test-y'
>>> getattr(a, 'y')
'test-y'
收获园豆:5
窗户 | 小虾三级 |园豆:874 | 2020-05-21 12:49

您的意思是,在类下面可以这样定义类的属性,但是遇到的那个程序里面,它不是一个类,而是一个函数,然后用类的方法来定义变量的,所有有点不明白。

Andrew_qian | 园豆:236 (菜鸟二级) | 2020-05-21 16:58

@Andrew_qian:
哦,我看错了你的意图,回答错了问题。是的,python里面函数也是对象,也一样可以动态绑定属性。但是不建议这么写。

窗户 | 园豆:874 (小虾三级) | 2020-05-21 17:47

@窗户:
好的,谢谢您的回复。我大致了解了。原来Python中,函数也可以动态绑定属性。但是这是不好的编程习惯。
感谢!

Andrew_qian | 园豆:236 (菜鸟二级) | 2020-05-21 17:53

@Andrew_qian: 其实这个是给了比如像C语言里,函数的static变量的一个方式。但是之所以不建议这样写,是因为可以用class取代它。

窗户 | 园豆:874 (小虾三级) | 2020-05-22 16:23
其他回答(1)
1

脚本语言好像都可以这样写,不过不建议,感觉这是取乱之道。

会长 | 园豆:9778 (大侠五级) | 2020-05-21 09:05

恩,好的,了解。谢谢您的回答。

支持(0) 反对(0) Andrew_qian | 园豆:236 (菜鸟二级) | 2020-05-21 16:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册