小编JJJ*_*JJJ的帖子

为什么此代码会打印随机选择的属性?

今天在编写一些特别糟糕的代码时,我偶然发现了这种神秘的行为.下面的Python 3程序打印随机选择的属性object.这是怎么发生的?

对于非确定性的一个明显的怀疑是vars(object)字典的随机排序,但我看不出它是如何导致观察到的行为.我得到的一个假设是,它是由__setattr__被覆盖的顺序引起的,但是lambda总是只被调用一次(通过打印调试检查)这一事实证明了这一点.

class TypeUnion: 
    pass

class t: 
    pass

def super_serious(obj):
    proxy = t()
    for name, val in vars(object).items():
        if not callable(val) or type(val) is type: 
            continue
        try: 
            setattr(t, name, lambda _, *x, **y: val)
        except AttributeError: 
            pass
    return proxy

print(super_serious(TypeUnion()).x)
Run Code Online (Sandbox Code Playgroud)

注意:上述程序并未试图做任何有用的事情; 它比原来大大减少了.

python python-3.x name-lookup

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

如何在Android中获取当前语言?

在我的 Android 手机语言设置中,我将语言设置为English(United Kingdowm)

我使用以下代码来获取语言:

Log.d(TAG,"getDisplayLanguage = " + Locale.getDefault().getDisplayLanguage());
Log.d(TAG,"getLanguage = " + Locale.getDefault().getLanguage());
Log.d(TAG,"Resources.getLanguage = " + Resources.getSystem().getConfiguration().locale.getLanguage());
Log.d(TAG,"getResources.getLanguage = " + getResources().getConfiguration().locale);
Run Code Online (Sandbox Code Playgroud)

日志显示如下:

getDisplayLanguage = English
getLanguage = en
Resources.getLanguage = en
getResources.getLanguage = en_GB
Run Code Online (Sandbox Code Playgroud)

它没有显示Local.UK

我错过了什么吗?

android local

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

Firebase Cloud Firestore抛出“客户端脱机”

在加载页面的4次中,大约有3次是从Firestore客户端SDK(Web)收到此错误的。这极大地减缓了开发速度。身份验证,实时数据库和存储都可以正常工作。

Failed to get document because the client is offline.
Run Code Online (Sandbox Code Playgroud)

错误

有什么我可以做的吗?

firebase google-cloud-firestore

5
推荐指数
3
解决办法
4642
查看次数

在.NET Core 2.0中将HTML转换为图像

我想将HTML代码转换为Web服务器上的Image(png / jpg),然后在.NET Core 2.0应用程序中通过电子邮件发送图像链接。我不想购买任何第三方库,例如NReco或EVo。

在dotnet core 2.0中还有其他方法可以将HTML转换为图像吗?

wkhtmltoimage .net-core-2.0

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

Luigi 中重要参数的用途是什么?

文档说:

如果使用 创建参数significant=False,则就任务签名而言,该参数将被忽略。仅使用不同的无关紧要的参数创建的任务具有相同的签名,但不是同一实例。

但这对 Luigi 中的任务流有什么帮助,因为如果我想使用不同的参数运行一个任务的两个实例,我会设置significant=True参数,这样 Luigi 将它们视为单独的任务,并且完成一个任务任务也不标记其他任务DONE

但我没有通过将参数标记为 来获得这些结果significant=True。那么,该significant参数有什么作用,什么时候应该使用它?

luigi

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

“class”属性在 JSX 中工作:如何工作?

我有一个学生提交的代码包含许多class className)属性。例如:

import React, { Component } from "react";

class Images extends Component {
    render() {
        return (
            <div class="gallery">
                <div class="zoom"><img src="foo.jpg" alt="Foo"/></div>
                <div class="zoom"><img src="bar.jpg" alt="Bar"/></div>
            </div>
    );
}
Run Code Online (Sandbox Code Playgroud)

但不知怎的,他的代码可以工作,并生成实际的 HTMLclass属性。我什至尝试删除一行,以确保代码确实被使用,但果然相应的行在输出中被删除了。

我不明白这是如何运作的。学生使用了create-react-app,它使用该react-scripts库来编译/运行该网站,但我找不到任何提及任何一个转换classclassName

https://facebook.github.io/create-react-app/

https://github.com/facebook/create-react-app/tree/master/packages/react-scripts

谁能解释一下这个巫术?;)

PS相关库版本:

"jsx": "^0.9.89",
"react": "^16.6.3",
"react-dom": "^16.6.3",
"@babel/preset-react": "^7.0.0",
Run Code Online (Sandbox Code Playgroud)

jsx reactjs create-react-app

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

Firebase FCM,同一 Firebase 项目中的多个应用程序

我有一个 Firebase 项目,在其中注册了多个应用程序。现在我想添加推送通知,并且我希望能够区分哪个应用程序应该被推送通知唤醒。

在 google-services.json 文件中,我看到所有应用程序的current keyinapi key部分具有相同的值,我理解这是因为我在同一个 Firebase 项目中注册了应用程序。

我还阅读了有关 SERVER_KEY 的信息,并看到有一个添加 SERVER KEY 的选项。我可以添加多个服务器密钥并在我的服务器中使用它们,以便发送正确应用程序的推送通知吗?

或者是否有任何其他解决方案允许我将应用程序注册在同一个 Firebase 项目中,但区分哪个应用程序应通过推送通知唤醒?

android firebase firebase-cloud-messaging

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

在 React 应用程序中提供来自 `.well-known` 文件夹的文件

我有一个 React 单页应用程序,可以将任何内容路由到同一页面。我没有安装反应路由器或任何routes.ts文件。该应用程序部署到 S3 存储桶。

但是,我需要从.well-known应用程序内的文件夹中提供两个文件。目前,访问这些文件的尝试也被重定向到 React 应用程序的主页。

如何在将任何其他请求重定向到 React 应用程序的同时提供文件夹中的两个文件?

reactjs

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

asp.net core web api - 将“使用 Apple 登录”令牌转换为 Microsoft.AspNetCore.Identity.IdentityResult 令牌

我有一个带有 ASP.NET Core 后端的 iOS 应用程序,它使用 IdentityUser 令牌,它可以使用用户名/密码登录来检索令牌,如下所示:

var result = await _signInManager.PasswordSignInAsync(model.Username, model.Password, isPersistent: true, lockoutOnFailure: true);
if (result.Succeeded)
{
    return Ok(result);
}
Run Code Online (Sandbox Code Playgroud)

但现在我想添加“使用 Apple 登录”的选项,这在应用程序端很容易完成,在 Apple 验证用户后,我们会得到一个已签名并包含电子邮件地址的 IdentityToken (JWT)。这看起来很简单,我可以将该 IdentityToken 传递回我的 API 并通过使用以下方法检查签名来验证它是否有效:https : //stackoverflow.com/a/34423434/1999217

但据我了解(以及到期),Apple 提供的 IdentityToken 只能使用一次并转换为新令牌(在我的情况下为 Microsoft.AspNetCore.Identity 令牌)。

我怎样才能做到这一点?一旦我验证了 IdentityToken 并且我相信请求用户拥有传入的电子邮件地址,那么我可以检索 ApplicationUser 和 Microsoft.AspNetCore.Identity.UserManager 似乎有一个方法 SignInAsync() 但它的返回类型不是 IdentityResult 作为预期所以它没有帮助。

我还查看了 ExternalLoginProvider 方法,但它依赖于我认为不适合这种情况的回调,因为我有一个可以信任的令牌。

我正在考虑使用电子邮件地址并进行即时密码重置,但感觉很狡猾。就像是:

var user = await _userManager.FindByEmailAsync(email);
var token = await _userManager.GeneratePasswordResetTokenAsync(user);
var result = await _userManager.ResetPasswordAsync(user, token, RandomPassword());
Run Code Online (Sandbox Code Playgroud)

因为这与身份验证有关,所以我觉得安全总比抱歉好。我想我的问题的核心是:这很狡猾吗?有没有更好的方法来获得只有电子邮件的 IdentityResult?

c# .net-core asp.net-core-identity apple-sign-in

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

将UserID存储在会话中?

要显示用户特定数据,我在哪里存储当前登录用户的用户ID?会议?

session

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