小编Jon*_*nny的帖子

Python源代码 - 更新语法

我正在研究一下Python的源代码,我决定将语法中的一些变化付诸实践,所以我下载了3.7版的源代码.

我遵循PEP 0306的指导原则:https:
//www.python.org/dev/peps/pep-0306/

从Hackernoon的例子来看:https://hackernoon.com/modifying-the-python-language-in-7-minutes-b94b0a99ce14

这个想法来自装饰器语法的改进(记住,它只是一个研究的例子,我已经知道还有其他方法可以做同样的事情):

@test
def mydef (self):
    pass
Run Code Online (Sandbox Code Playgroud)

它完美地运行,遵循语法/语法文件的行:

decorated: decorators (classdef | funcdef | async_funcdef)
Run Code Online (Sandbox Code Playgroud)

现在的目标是将装饰器更改为接受声明,从示例开始:

@test
id: int = 1
Run Code Online (Sandbox Code Playgroud)

分析语法,我找到了annassign,它将是:

annassign: ':' test ['=' test]
# or even use small_stmt
Run Code Online (Sandbox Code Playgroud)

给定表示id:int = 1的标记,我将标记更改为:

decorated: decorators (classdef | funcdef | async_funcdef | annassign)
Run Code Online (Sandbox Code Playgroud)

完成(遵循PEP 0306)我去了ast.c并确定了ast_for_decorated方法,并得到了一段代码:

[...]
assert(TYPE(CHILD(n, 1)) == funcdef ||
       TYPE(CHILD(n, 1)) == async_funcdef ||
       TYPE(CHILD(n, 1)) == classdef);

if (TYPE(CHILD(n, 1)) == funcdef) …
Run Code Online (Sandbox Code Playgroud)

python grammar cpython python-2.7 python-3.x

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

平台定义文件

我正在努力将第三方驱动器添加到正在使用的内核中,但是要获得它的一部分却很困难,我需要一些帮助。

按照驱动器的指南,我在这一点上停止了:

(1)以下是要添加到平台定义文件中的定义。

就我而言,我使用的是bcm2709,我推断平台定义文件是arm / mach-bcm2709 / bcm2709.c,对吗?(1)

(2)平台定义文件中必须包含pn5xx_i2c.h

我推断出我需要添加

#include <linux/pn5xx_i2c.h>
Run Code Online (Sandbox Code Playgroud)

由于我在linux / includes中添加了pn5xx_i2c.h ,对吗?(2)

(3)然后,必须使用专用过程(特定于平台)将已声明的nfc_board_info结构添加到平台。

这我不再知道该怎么办(3)

谢谢

linux arm linux-device-driver linux-kernel

5
推荐指数
0
解决办法
158
查看次数

将 MIFARE DESFire EV1 配置为 NDEF 的 NFC 论坛类型 4 标签

我在 Android 中使用 NFC 开始了我的学习。我可以轻松地以 NDEF 格式读写。

我的问题是MIFARE DESFire EV1,我有一些工厂卡,我知道它们不符合NFC Forum type 4 Tag规范,因此不接受以 NDEF 格式读取或写入(在工厂配置中时) )。

我可以通过android.nfc.tech.NfcA或访问标签android.nfc.tech.IsoDep

到目前为止,我明白我需要使用IsoDep.transceive()方法来传递命令,使我能够构建符合 NFC 论坛类型 4 的标签。

但是我遇到了很多麻烦。我正在使用 TagWriter,它完美地完成了这项服务。每次我使用 NDEF 数据集时,它都会自动执行一个例程,使卡成为 NFC 论坛类型 4 标签,从而成为 NDEF 标签。

但是,我找不到任何简单的示例来自己执行此过程。即使阅读了规范文档NFCForum-TS-Type-4-Tag_2.0,我仍然很迷茫。

是否有任何实际示例可以执行 TagWriter 应用程序所做的过程?

  • 识别NfcA/ IsoDep(在这里确定)
  • 使卡符合 NFC Forum Type 4 Tag 规范
  • 开始将标签识别为 android.nfc.tech.Ndef
  • 启用 NDEF 的读写

tags android nfc mifare ndef

4
推荐指数
1
解决办法
2851
查看次数

枚举.default选项

这个问题基本上是要研究,没有"为什么?" 或"而不是......"

在Swift 3中,使用.default很常见,举例说明:


    UIApplication.shared.statusBarStyle = .default
    // from UIStatusBarStyle.default

我在想,怎么样?在我的测试中,我没有成功,我尝试了类似的东西:


    class Test {
        enum Options {
            case light, default // bad world
        }
    }

谢谢 :)

swift swift3

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