小编JV.*_*JV.的帖子

"MetaClass","__ new__","cls"和"super" - 究竟是什么机制?

我看过这样的帖子:

  1. 什么是Python中的元类?
  2. Python中元类的(具体)用例是什么?
  3. Python的超级很漂亮,但是你无法使用它

但不知怎的,我感到困惑.许多混淆如:

何时以及为什么我必须做以下事情?

# Refer link1
return super(MyType, cls).__new__(cls, name, bases, newattrs)
Run Code Online (Sandbox Code Playgroud)

要么

# Refer link2
return super(MetaSingleton, cls).__call__(*args, **kw)
Run Code Online (Sandbox Code Playgroud)

要么

# Refer link2
return type(self.__name__ + other.__name__, (self, other), {})
Run Code Online (Sandbox Code Playgroud)

超级工作怎么样?

什么是link1中的类注册表和unregistry以及它究竟是如何工作的?(我认为它与单身人士有关.我可能是错的,来自C背景.我的编码风格仍然是功能和OO的混合).

类实例化(子类,元类,超类型)和方法调用的流程是什么(

metaclass->__new__, metaclass->__init__, super->__new__, subclass->__init__ inherited from metaclass
Run Code Online (Sandbox Code Playgroud)

)具有良好评论的工作代码(虽然第一个链接非常接近,但它没有谈论cls关键字和超级(..)和注册表).优选地,具有多重继承的示例.

PS:我把最后一部分作为代码,因为Stack Overflow格式化将文本转换metaclass->__new__ 为元类 - >

python types metaclass super

28
推荐指数
2
解决办法
2万
查看次数

BLE蓝牙低功耗设备中的身份验证问题

我们正在制造一个带有BLE接口的物联网设备,该接口使用托管芯片CC2541 的HM-11(http://www.seeedstudio.com/wiki/Bluetooth_V4.0_HM-11_BLE_Module)分线板(http://www.ti. com/product/CC2541).

身份验证方法设置为 2:Auth with PIN

显示可用身份验证模式的数据表中的剪辑如下:

63. Query/Set Module Bond Mode Send Receive Parameter AT+TYPE? OK+Get:[para1] None AT+TYPE[para1] OK+Set:[para1] Para1: 0~2 0:Not need PIN Code 1:Auth not need PIN 2:Auth with PIN 3:Auth and bond Default: 0

对于低于Android 5.0版本的设备,它可以正常工作.

然而

  1. 对于Android版本5.0的设备,配对对话框显示没有diaplyed-pin或pin-enter-field,当pair点击按钮时,它无法配对 - 抱怨

    由于PIN或密钥不正确,无法与MyApp配对.

  2. 对于使用Android版本5.1的设备,它甚至不会显示配对对话框,也无法配对.

注意:尝试重启设备,忘记设备,清除设备的绑定信息.

寻找指导,建议,帮助,评论,代码.

android bluetooth-lowenergy android-bluetooth

17
推荐指数
1
解决办法
1810
查看次数

Postgres - 如何返回丢失数据的0计数行?

我有不均匀分布的数据(wrt日期)几年(2003-2008).我想查询一组给定的开始和结束日期的数据,按PostgreSQL 8.3中任何支持的时间间隔(日,周,月,季,年)对数据进行分组(http://www.postgresql.org/docs /8.3/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC).

问题是某些查询会在所需的时间段内提供连续的结果,如下所示:

select to_char(date_trunc('month',date), 'YYYY-MM-DD'),count(distinct post_id) 
from some_table where category_id=1 and entity_id = 77  and entity2_id = 115 
and date <= '2008-12-06' and date >= '2007-12-01' group by 
date_trunc('month',date) order by date_trunc('month',date);
          to_char   | count 
        ------------+-------
         2007-12-01 |    64
         2008-01-01 |    31
         2008-02-01 |    14
         2008-03-01 |    21
         2008-04-01 |    28
         2008-05-01 |    44
         2008-06-01 |   100
         2008-07-01 |    72
         2008-08-01 |    91
         2008-09-01 |    92
         2008-10-01 |    79
         2008-11-01 |    65
        (12 rows)
Run Code Online (Sandbox Code Playgroud)

但有些人因为没有数据而错过了一些间隔,因为这个:

select …
Run Code Online (Sandbox Code Playgroud)

python database postgresql left-join generate-series

13
推荐指数
2
解决办法
9203
查看次数

怎么做 - python字典遍历和搜索

我有嵌套字典:

{'key0': {'attrs': {'entity': 'p', 'hash': '34nj3h43b4n3', 'id': '4130'},
          u'key1': {'attrs': {'entity': 'r',
                              'hash': '34njasd3h43b4n3',
                              'id': '4130-1'},
                    u'key2': {'attrs': {'entity': 'c',
                                        'hash': '34njasd3h43bdsfsd4n3',
                                        'id': '4130-1-1'}}},
          u'key3': {'attrs': {'entity': 'r',
                              'hash': '34njasasasd3h43b4n3',
                              'id': '4130-2'},
                    u'key4': {'attrs': {'entity': 'c',
                                        'hash': '34njawersd3h43bdsfsd4n3',
                                        'id': '4130-2-1'}},
                    u'key5': {'attrs': {'entity': 'c',
                                        'hash': '34njawersd3h43bdsfsd4n3',
                                        'id': '4130-2-2'}}}},
 'someohterthing': 'someothervalue',
 'something': 'somevalue'}
Run Code Online (Sandbox Code Playgroud)

给予id - 一个ids喜欢41304130-2-2.
导航到正确字典的最简单方法是什么?

就像给定id4130-2-1那样它应该到达字典key=key5

非xml方法请.

编辑(1):筑巢之间14的水平,但我知道我的嵌套前解析.

编辑(2):修复了代码.

**编辑(3):**再次固定代码的字符串值 …

python parsing struct dictionary nested

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

使用AngularJS渲染Django表单集?

我想将主模板的某些部分移动到不需要django渲染的部分(即纯html/js),并在主模板的ng-view中使用它们.

然而,部分有Django formsets(使用crispy),即没有Django渲染就没用了.

而且,我不想手工编写完整的formset HTML.

我怎样才能做到这一点?

django django-forms angularjs

9
推荐指数
1
解决办法
806
查看次数

Python中的优化 - 做,不应该和经验法则

好吧,我正在阅读这篇文章然后我遇到了一个代码:

jokes=range(1000000)
domain=[(0,(len(jokes)*2)-i-1) for i in range(0,len(jokes)*2)]
Run Code Online (Sandbox Code Playgroud)

我认为在列表理解之外计算len(笑话)的值不是更好吗?

好吧,我尝试了它并计时三个代码

jv@Pioneer:~$ python -m timeit -s 'jokes=range(1000000);domain=[(0,(len(jokes)*2)-i-1) for i in range(0,len(jokes)*2)]'
10000000 loops, best of 3: 0.0352 usec per loop
jv@Pioneer:~$ python -m timeit -s 'jokes=range(1000000);l=len(jokes);domain=[(0,(l*2)-i-1) for i in range(0,l*2)]'
10000000 loops, best of 3: 0.0343 usec per loop
jv@Pioneer:~$ python -m timeit -s 'jokes=range(1000000);l=len(jokes)*2;domain=[(0,l-i-1) for i in range(0,l)]'
10000000 loops, best of 3: 0.0333 usec per loop
Run Code Online (Sandbox Code Playgroud)

观察第一个和第二个之间的边际差异2.55%让我觉得 - 是第一个列表理解

domain=[(0,(len(jokes)*2)-i-1) for i in range(0,len(jokes)*2)]
Run Code Online (Sandbox Code Playgroud)

python内部优化?或者2.55%是一个足够大的优化(假设len(笑话)= 1000000)?

如果是这样 - …

python optimization

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

Heroku和Redistogo Nano达到了最大客户

我使用RedisToGo Nano插件在Heroku上使用celerybeat

有一个网络dyno和一个工人dyno

celerybeat工作人员每分钟都要执行一项任务.

问题是:每当我部署新的提交时,dynos重启,我就会收到此错误

2014-02-27T13:19:31.552352+00:00 app[worker.1]: Traceback (most recent call last):
2014-02-27T13:19:31.552352+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/celery/worker/consumer.py", line 389, in start
2014-02-27T13:19:31.552352+00:00 app[worker.1]:     self.reset_connection()
2014-02-27T13:19:31.552352+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/celery/worker/consumer.py", line 727, in reset_connection
2014-02-27T13:19:31.552352+00:00 app[worker.1]:     self.connection = self._open_connection()
2014-02-27T13:19:31.552352+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/celery/worker/consumer.py", line 792, in _open_connection
2014-02-27T13:19:31.552352+00:00 app[worker.1]:     callback=self.maybe_shutdown)
2014-02-27T13:18:23.864287+00:00 app[worker.1]:     self.on_connect()
2014-02-27T13:18:23.864287+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/redis/connection.py", line 263, in on_connect
2014-02-27T13:18:23.864287+00:00 app[worker.1]:     if nativestr(self.read_response()) != 'OK':
2014-02-27T13:18:23.864287+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/redis/connection.py", line 314, in read_response
2014-02-27T13:18:23.864287+00:00 app[worker.1]:     raise response
2014-02-27T13:18:23.864287+00:00 app[worker.1]: ResponseError: max …
Run Code Online (Sandbox Code Playgroud)

heroku redis celery celerybeat redistogo

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

Postgres中'money'和'OID'的sqlalchemy等效列类型是什么?

Postgres中'money'和'OID'列类型的sqlalchemy等效列类型是什么?

python postgresql sqlalchemy

7
推荐指数
2
解决办法
5524
查看次数