小编Phy*_*ida的帖子

从python中的特定reddit线程获取所有注释

官方的方式,

r = praw.Reddit('Comment Scraper 1.0 by u/_Daimon_ see '
                 'https://praw.readthedocs.org/en/latest/'
                 'pages/comment_parsing.html')
submission = r.get_submission(submission_id='11v36o')
submission.replace_more_comments(limit=None, threshold=0)
Run Code Online (Sandbox Code Playgroud)

非常慢.有没有办法加快速度?有人已经将每个reddit注释提取到数据库中,因此必须有一些方法可以更快地完成此操作.

python performance reddit praw

12
推荐指数
2
解决办法
8089
查看次数

如何将 SwiftUI 元素绑定到字典中的值?

我有一本字典,其中包含我想“过滤”的各种值。所以我正在做这样的事情

struct ExampleView : View {

    @EnvironmentObject var externalData : ExternalData

    var body: some View {
        VStack {
            ForEach(externalData.filters) { (v : (String, Bool)) in
                Toggle(isOn: $externalData.filters[v.0], label: {
                    Text("\(v.0)")
                })
            }
        }
    }
}

final class ExternalData : BindableObject {

    let didChange = PassthroughSubject<ExternalData, Never>()

    init() {
        filters["Juniper"] = true
        filters["Beans"] = false
    }

    var filters : Dictionary<String, Bool> = [:] {
        didSet {
            didChange.send(self)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这个问题似乎相关,但放置动态似乎没有帮助,我无法弄清楚在这种情况下如何执行 NSObject 继承。现在,这个代码给了我这个错误:

Cannot subscript a value of type 'Binding<[String …
Run Code Online (Sandbox Code Playgroud)

swiftui

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

Python中的键回显在单独的线程中不显示第一个键击

我会尝试发布一个最小的工作示例,但不幸的是这个问题只需要很多部分,所以我尽可能地将其剥离.

首先,我使用一个简单的脚本来模拟通过函数调用按键.这是从这里调整的.

import ctypes

SendInput = ctypes.windll.user32.SendInput

PUL = ctypes.POINTER(ctypes.c_ulong)

class KeyBdInput(ctypes.Structure):
    _fields_ = [("wVk", ctypes.c_ushort),
                ("wScan", ctypes.c_ushort),
                ("dwFlags", ctypes.c_ulong),
                ("time", ctypes.c_ulong),
                ("dwExtraInfo", PUL)]

class HardwareInput(ctypes.Structure):
    _fields_ = [("uMsg", ctypes.c_ulong),
                ("wParamL", ctypes.c_short),
                ("wParamH", ctypes.c_ushort)]

class MouseInput(ctypes.Structure):
    _fields_ = [("dx", ctypes.c_long),
                ("dy", ctypes.c_long),
                ("mouseData", ctypes.c_ulong),
                ("dwFlags", ctypes.c_ulong),
                ("time",ctypes.c_ulong),
                ("dwExtraInfo", PUL)]

class Input_I(ctypes.Union):
    _fields_ = [("ki", KeyBdInput),
                 ("mi", MouseInput),
                 ("hi", HardwareInput)]

class Input(ctypes.Structure):
    _fields_ = [("type", ctypes.c_ulong),
                ("ii", Input_I)]

def getKeyCode(unicodeKey):
    k = unicodeKey
    curKeyCode = 0
    if k == …
Run Code Online (Sandbox Code Playgroud)

python windows keyboard multithreading python-multithreading

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

有没有办法让宏具有不同的行为,如果它有括号?

我正在尝试做这样的事情:

#define FOO printf("No paren\n");
#define FOO(x) printf(x);
Run Code Online (Sandbox Code Playgroud)

有没有办法用c ++宏做到这一点?

c++ c-preprocessor

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

如何将 EnvironmentObject 变量绑定到滑块

我有一个需要在其他各个地方访问的 sliderVal,所以我的理解是我应该使用 EnvironmentObject(或 BindableObject,但 EnvironmentObject 很好,因为它也用于子视图中)来保存这些值。像这样的东西

struct ExampleView : View {

    @EnvironmentObject var externalData : ExternalData

    var body: some View {
        Slider(value: self.externalData.$sliderVal, from: 1, through: 100, by: 1)
    }

}

final class ExternalData : BindableObject {

    let didChange = PassthroughSubject<ExternalData, Never>()

    var sliderVal : Double = 5.0 {
        didSet {
            didChange.send(self)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这通常适用于文本之类的东西,但是在这里,当我尝试使用 $ 符号绑定到 Slider 之类的东西时,它会出现编译错误

Value of type 'ExternalData' has no member '$sliderVal'; did you mean 'sliderVal'?
Run Code Online (Sandbox Code Playgroud)

但是只使用sliderVal 会给我错误

Cannot convert value of type 'Double' …
Run Code Online (Sandbox Code Playgroud)

swiftui

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

如何设置Google Drive Client ID以便在没有本地服务器的情况下进行访问?

我想知道是否可以在随机计算机上打开一个jsfiddle并登录并验证并使用驱动器API,而无需一直运行本地服务器?一个人如何设置它?我很抱歉,如果这是一个简单的问题,但我只是因为我到目前为止发现的说明不清楚而丢失了.

编辑:

到目前为止,我有,从以下这里这里:

  1. 通过Google Developers Console创建了一个项目.
  2. 在那里打开那个项目,导航到API和auth下的API,并确保启用了Drive API
  3. 进入凭据,然后点击"创建新的客户端ID"
    • 选择"Web应用程序"
    • 将授权的javascript原点设置为http:// localhost:4567
    • 删除重定向URI中的任何内容并将其留空,然后按"创建客户端ID".
  4. 取一个像这样,这样或者这样的样本,并将它存储在一个名为index.html的本地文件中.
    • 这不会只是在一个浏览器中打开,所以我必须托管一个本地服务器
    • 我在命令行中导航到该目录,然后键入"python -m SimpleHTTPServer 4567"(不带引号)并托管本地服务器
    • 在我的web浏览器中打开http:// localhost:4567,并且在将新创建的客户端ID复制到他们要求的这些文件中之后,所有这些示例都正常工作.

我也做了一个python应用程序,使用pydrive I:

  1. 单击"创建新客户端ID",然后单击"已安装的应用程序"和"其他",然后单击"创建客户端ID".
  2. 接下来,我转到旧的Google API控制台,点击API Access,找到客户端ID,然后点击下载JSON.
  3. 我把这个client_secrets.json放在我的python应用程序旁边,这允许pydrive成功进行身份验证,我可以使用该客户端ID访问和修改我的google驱动器文件.虽然我在将应用程序提供给另一个人之前当然删除了这个client_secrets.json,并向他们展示了如何执行此过程.

但是,除此之外,我有点不确定,特别是:

  • 如何在Web应用程序中使用驱动器api而无需设置本地服务器,例如只需在jsfiddle中运行代码并通过使用客户端ID通过我的项目发送请求,以及
  • 如果设置的本地服务器可以被网络上的任何人访问,那么如何修改上述步骤以允许任何客户端打开该服务器的网页以使用google drive API?

我知道我很可能需要在开发人员控制台中设置公共API访问权限,但我不完全确定我应该使用哪些Referers.那么有一种简单的方法可以做到这一点吗?

我也知道gspread只能使用客户端的用户名和密码打开google excell电子表格,所以我怀疑我正在寻找的是可能的,但我不确定.

javascript google-drive-api

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

为什么在 C++ 中注释掉多行注释不一致?

所以我们知道

// This doesn't affect anything

/*
This doesn't affect anything either
*/

/*
/* /* /*
This doesn't affect anything
*/
This does because comments aren't recursive

/* /*
This doesn't affect anything
*/ */
This throws an error because the second * / is unmatched since comments aren't recursive
Run Code Online (Sandbox Code Playgroud)

我听说它们不递归的原因是因为它们会减慢编译器的速度,我想这是有道理的。然而现在,当我用更高级的语言(比如 Python)解析 C++ 代码时,我可以简单地使用正则表达式

"\/[\/]+((?![\n])[\s\S])*\r*\n"
Run Code Online (Sandbox Code Playgroud)

匹配// single line comments并使用

"\/\*((?!\*\/)[\s\S])*\*\/"
Run Code Online (Sandbox Code Playgroud)

匹配/* multiline comments */,然后循环遍历所有单行注释,将其删除,然后循环遍历所有多行注释并将其删除。或相反亦然。但这就是我被困住的地方。似乎只做其中之一还不够,因为:

// /*
An error is thrown because the /* …
Run Code Online (Sandbox Code Playgroud)

c++ regex compiler-construction comments

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