小编MaN*_*KuR的帖子

字符串编码中的Python-3和\ x Vs\u Vs\U及其原因

为什么我们在Python 3中有不同的面向字节的字符串表示?单个表示而不是多个表示是否足够?

对于ASCII范围编号打印,字符串显示以下列开头的序列\x:

 In [56]: chr(128)
 Out[56]: '\x80'
Run Code Online (Sandbox Code Playgroud)

在不同的数字范围内,Python使用以.开头的序列 \u

In [57]: chr(57344)
Out[57]: '\ue000'
Run Code Online (Sandbox Code Playgroud)

但是在最高范围内的数字,即截至目前的最大Unicode数,它使用了一个领先的\U:

In [58]: chr(1114111)
Out[58]: '\U0010ffff'
Run Code Online (Sandbox Code Playgroud)

python unicode unicode-string python-3.x python-unicode

8
推荐指数
1
解决办法
4305
查看次数

cakephp知道控制器本身的所有设置变量

是否可以通过$this->set('variable_name', 'some_value') 控制器的方法本身跟踪所有设置变量.实际上我有一个方法调用其他几个方法,每个子方法设置值来查看.现在我无法跟踪主方法中是否有相同的键设置两次.

    function beforeFilter()
{
    $this->set('key1', 'viable value');
}


function reqMethod()
{
    $this->extendMethod1();
    $this->extendMethod2();
    $this->extendMethod3();
    $this->extendMethod4();
    $this->extendMethod5();
    $this->extendMethod6();
            // Want to track all set variable (key) here.
}

private function extendMethod1()
{
    $this->set('key1', 'unknow value');
}
Run Code Online (Sandbox Code Playgroud)

这里有可能将key1(错误地)设置为另一种方法.任何帮助真的很感激.

php methods cakephp

5
推荐指数
1
解决办法
3125
查看次数

python getattr内置方法执行默认参数

我不知道这是否是getattrbuild_in方法的预期行为. getattr即使实际参数(2nd)满足条件,也会执行默认(第3个)参数.例:

def func():
    print('In Function')

class A:
    def __init__(self):
        self.param = 12

a = A()
Run Code Online (Sandbox Code Playgroud)

当我运行getattr(a, 'param', func())它时给出这个结果:

In Function
12
Run Code Online (Sandbox Code Playgroud)

注意In Function我不想要的.

但是当我执行getattr(a, 'param1', func())ie输出时它完全正常

In Function
Run Code Online (Sandbox Code Playgroud)

但我只想要结果12好像满足了条件.请让我知道为什么getattr会有这样的行为,我们可以阻止他们这样做(如果有第二个参数,那就不是执行第三个arg),如果以Pythonic方式共享另一种方式,我将不胜感激.首先要记住的一件事是检查是否param1存在使用hasattr然后做必要的事情.

python getattr python-2.7

3
推荐指数
1
解决办法
495
查看次数

如何在文本文件上编写控制台输出

我是编程新手,我在网页上搜索了这个问题的答案,并尝试了很多可能性但没有成功。我目前已设法将电位计连接到我的树莓派并在控制台上获取值,但我不知道如何将这些值保存到文本文件中。这是我的代码:

 #!/usr/bin/python
import spidev
import time

#Define Variables
delay = 0.5
ldr_channel = 0

#Create SPI
spi = spidev.SpiDev()
spi.open(0, 0)

def readadc(adcnum):
  # read SPI data from the MCP3008, 8 channels in total
  if adcnum > 7 or adcnum < 0:
    return -1
  r = spi.xfer2([1, 8 + adcnum << 4, 0])
  data = ((r[1] & 3) << 8) + r[2]
  return data

while True:
  ldr_value = readadc(ldr_channel)
  print ('---------------------------------------')
  print("LDR Value: %d" % ldr_value)
  time.sleep(delay)
  file = open('data.txt','w') …
Run Code Online (Sandbox Code Playgroud)

console text file python-3.x output

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