相关疑难解决方法(0)

"是"运算符与整数意外行为

为什么以下在Python中出现意外行为?

>>> a = 256
>>> b = 256
>>> a is b
True           # This is an expected result
>>> a = 257
>>> b = 257
>>> a is b
False          # What happened here? Why is this False?
>>> 257 is 257
True           # Yet the literal numbers compare properly
Run Code Online (Sandbox Code Playgroud)

我使用的是Python 2.5.2.尝试一些不同版本的Python,似乎Python 2.3.3显示了99到100之间的上述行为.

基于以上所述,我可以假设Python在内部实现,使得"小"整数以不同于大整数的方式存储,is运算符可以区分.为什么泄漏抽象?当我不知道它们是否是数字时,比较两个任意对象以查看它们是否相同的更好的方法是什么?

python int identity operators python-internals

476
推荐指数
11
解决办法
6万
查看次数

在Ruby中按名称以编程方式访问变量

我不完全确定Ruby是否可行,但希望有一种简单的方法可以做到这一点.我想声明一个变量,然后找出变量的名称.也就是说,对于这个简单的片段:

foo = ["goo", "baz"]
Run Code Online (Sandbox Code Playgroud)

如何获取数组的名称(此处为"foo")?如果它确实可能,这是否适用于任何变量(例如,标量,散列等)?

编辑:这是我基本上要做的事情.我正在编写一个包含三个重要变量的类的SOAP服务器,验证代码基本上是这样的:

  [foo, goo, bar].each { |param|
      if param.class != Array
        puts "param_name wasn't an Array. It was a/an #{param.class}"
        return "Error: param_name wasn't an Array"
      end
      }
Run Code Online (Sandbox Code Playgroud)

我的问题是:我可以用foo,goo或bar替换'param_name'的实例吗?这些对象都是数组,所以到目前为止我收到的答案似乎不起作用(除了重新设计整个事情ala dbr的答案)

ruby variables

24
推荐指数
4
解决办法
3万
查看次数

将变量名称添加到变量

我有以下变量:

VarX=700
Run Code Online (Sandbox Code Playgroud)

我现在需要将名称写入VarXtxt文件.所以我想我需要创建另一个变量并为其分配名称,VarX然后将其写入文件.如何为变量指定变量名称?

python variables

0
推荐指数
1
解决办法
118
查看次数

标签 统计

python ×2

variables ×2

identity ×1

int ×1

operators ×1

python-internals ×1

ruby ×1