python中有没有变量?求解答

Python中没有变量
理解参数传递的关键是停止思考“变量”。Python中有名称和对象,它们一起看起来像变量,但总是区分三者是有用的。

Python有名称和对象。
赋值将名称绑定到对象。
将参数传递给函数还会将名称(函数的参数名称)绑定到对象。
这就是它的全部。可变性与这个问题无关。

例:

a = 1
这会将名称绑定a到包含值1的整数类型的对象。

b = x
这会将名称绑定到b名称x当前绑定的同一对象。之后,名称与名称b无关x。

请参阅Python 3语言参考中的3.1和4.2节。

如何阅读问题中的示例
在问题中显示的代码中,语句self.Change(self.variable)将名称var(在函数范围内Change)绑定到保存值的对象,'Original'并且赋值var = 'Changed'(在函数体中Change)再次指定相同的名称:对于其他对象(发生的情况)也可以保持一个字符串但完全可能是其他东西。

如何通过引用传递
(编辑2019-04-28)

因此,如果您想要更改的内容是可变对象,则没有问题,因为所有内容都通过引用有效传递。

如果它是一个不可变对象(例如bool,number,string),那么可以将它包装在一个可变对象中。
对此的快速和肮脏的解决方案是一个单元素列表(而不是self.variable传递[self.variable]和在函数修改中var[0])。
更加pythonic的方法是引入一个简单的,一个属性的类。该函数接收类的实例并操纵该属性。

 

转载于:https://www.cnblogs.com/Xingtxx/p/11045015.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值