小编Sea*_*nka的帖子

为什么`object`类的实例在Python中是不可变的?

>>> a = object()
>>> a.x = 5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'object' object has no attribute 'x'
>>> b = lambda:0
>>> b.x = 5
>>> b.x
5
Run Code Online (Sandbox Code Playgroud)

为什么object类的实例没有a __dict__,导致它在语义上不可变?选择这个设计的原因是什么?

具体来说,原因:

在C中定义的类型实例默认情况下没有__dict__属性.

正如这个问题所述.

python attributes immutability

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

Rust 是否与 Python 的字典理解语法等效?

如何将以下 Python(其中读取多个文件并将它们的内容用作字典(以文件名作为键)的值)转换为 Rust?

countries = {region: open("{}.txt".format(region)).read() for region in ["canada", "usa", "mexico"]}
Run Code Online (Sandbox Code Playgroud)

我的尝试如下所示,但我想知道是否可以使用单行惯用的解决方案。

use std::{
    fs::File,
    io::{prelude::*, BufReader},
    path::Path,
    collections::HashMap,
};

macro_rules! map(
    { $($key:expr => $value:expr),+ } => {
        {
            let mut m = HashMap::new();
            $(
                m.insert($key, $value);
            )+
            m
        }
     };
);

fn lines_from_file<P>(filename: P) -> Vec<String>
where
    P: AsRef<Path>,
{
    let file = File::open(filename).expect("no such file");
    let buf = BufReader::new(file);
    buf.lines()
        .map(|l| l.expect("Could not parse line"))
        .collect()
}

fn main() {
    let _countries = map!{ "canada" …
Run Code Online (Sandbox Code Playgroud)

list-comprehension rust

9
推荐指数
2
解决办法
6591
查看次数

安排 Docker 映像在 AWS ECS 上定期运行?

如何安排使用 ECS 定期(每小时)运行 docker 映像,而无需使用持续运行的 EC2 实例 + cron?我有一个包含第三方二进制文件和 python 项目的 docker 映像。

后一种方法从长远来看并不可行,因为实例 24/7 运行的成本很高,而且只在一天中的一小部分时间使用,因为脚本的调用仅持续约 3 分钟。

amazon-ec2 amazon-web-services amazon-ecs docker

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

有条件地启用 Jenkins 声明式管道选项?

Jenkins 是否提供任何功能来实现下面描述的以下管道?

pipeline
{
    agent any
    options
    {
        when {
            branch 'master'
        }
        disableConcurrentBuilds()
    }
    stages { ... }
}
Run Code Online (Sandbox Code Playgroud)

对于这个单一管道必须管理的存储库,我有两种状态:

  1. 为提交到合并请求分支(预合并)而构建,允许同时运行构建
  2. 在合并请求(post-merge)合并时构建主分支,不允许同时运行构建。

jenkins jenkins-plugins jenkins-pipeline

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

将 requests.Session() cookie 传输到 Python 中的 selenium Web 驱动程序

经过研究和修补后,我似乎对我可以尝试的方法感到困惑。我基本上想在这里做这个问题的相反操作:Is it possible to "transfer" a session between selenium.webdriver and requests.session

我想“点击”我通过会话中的一系列 GET/POST 请求“到达”的网页上的 JavaScript 按钮(重要的是 cookie 的维护和无缝传输,因为我的 GET/POST 请求已开启需要登录用户的页面)。

但是,经过一番谷歌搜索后,我发现 requests 似乎并没有提供类似的东西。我找到了硒,此后一直试图正确地将 cookie 转移过来(未成功)。

import requests, requests.utils, lxml.html
from lxml.cssselect import CSSSelector
from selenium import webdriver

# urls which requests will be made to
login_url = 'login-url-here'
logged_in_data_url = 'logged-in-data-here'

# create my Session to contain my cookies
with requests.Session() as s:
    login_html = s.get(login_url)
    tree = lxml.html.fromstring(login_html.text)
    important_key1 = list(set(tree.xpath('//*[@id="fm1"]/div/div[3]/input[1]/@value')))[0]
    important_key2 = list(set(tree.xpath('//*[@id="fm1"]/div/div[3]/input[2]/@value')))[0]
    form_value = "submit"

    login_payload …
Run Code Online (Sandbox Code Playgroud)

python cookies session selenium python-requests

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

在 Flask 应用程序中看不到 Favicon

收藏夹图标当前未显示在我的 Flask 应用程序提供的页面上。我有以下两条路线,如何确保显示图标?

@app.route('/')
def hello():
    return redirect("tg://resolve?domain=sneakersale", code=302)

@app.route('/favicon.ico')
def fav():
    return send_from_directory(os.path.join(app.root_path, 'static'),'favicon.ico')
Run Code Online (Sandbox Code Playgroud)

python favicon flask

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

Python中的`Builder`设计模式是否过时了?

我正在阅读这篇关于 Scala 设计模式的文章,他们提出了 Builder 模式与 Java 相关的论点,因为它允许使用以下代码:

CarBuilder carBuilder = new CarBuilder()
carBuilder.setSeats(2)
carBuilder.setSportsCar(true)
carBuilder.setTripComputer(true)
carBuilder.setGPS(false)
Car car = carBuilder.build()
Run Code Online (Sandbox Code Playgroud)

与更容易混淆的形式:

Car car = new Car(2, true, true, false)
Run Code Online (Sandbox Code Playgroud)

他们后来表示:

在像 Scala 这样允许你在传入参数时命名参数的语言中,构建器模式大多已经过时......

这是否与 Python 类似,因为您可以在任何调用中命名关键字参数,或者这种设计模式是否有一些合理的应用?

python design-patterns builder

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

通过CloudWatch计划API网关请求?

我有一个API(通过API网关),其中每个资源的方法都通过lambda代理集成路由到单个lambda函数,其中每个请求在内部进行处理。

如何通过CloudWatch事件自动调度对一种资源的方法的计划调用?优选地,这将不能通过直接调用lambda函数来完成,而是允许指定的(恒定)输入。

amazon-web-services amazon-cloudwatch aws-api-gateway

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

Firefox 和 Chrome 上的 css-grid 呈现方式不同

我正在学习 css-grid 并且在使用网格区域和百分比大小的行/列时遇到了跨浏览器(Firefox 和 Chrome)渲染差异。在此处查看我对此问题的演示:https : //codepen.io/anon/pen/qQyKNO

请参阅下面包含 HTML/CSS 的 MVCE:

/* CSS Reset */
html 
{
    font-family: sans-serif;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust:     100%;
}
body { margin: 0; }
.p1  { padding: 1rem; }
img  { display: block; border: 0; width: 100%; height: auto; }

/* General Styles */
.navbar       { background: white; border-bottom: 1px solid black; }
.logo         { background: #212121;}
.sidebar      { background: #212121; color: white; }
.main-content { background: white; }
.colophon     { background: #1c1e1e; color: …
Run Code Online (Sandbox Code Playgroud)

html css css-grid

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