小编met*_*ter的帖子

Box::new() 会从堆栈复制到堆吗?

从文档中可以看出:

pub fn new(x: T) -> Box<T>
Run Code Online (Sandbox Code Playgroud)

在堆上分配内存,然后放入x其中。

但“地点”是一个棘手的词。如果我们写

let arr_boxed = Box::new([0;1000]);
Run Code Online (Sandbox Code Playgroud)

会[0;1000]在堆上就地初始化吗?

如果我们写

let arr = [0;1000];
let arr_boxed = Box::new(arr);
Run Code Online (Sandbox Code Playgroud)

[0;1000]编译器是否足够聪明,可以首先在堆上初始化?

rust

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

为什么使用“from module import A as A”而不是“from module import A”

在阅读fastapi的源代码时,这一行让我很模糊:

from starlette.testclient import TestClient as TestClient
Run Code Online (Sandbox Code Playgroud)

为什么不只是:from starlette.testclient import TestClient?

python mypy

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

Python Mechanize登录Facebook cookie错误

几天后我无法使用我的脚本登录facebook.Facebook登录页面给出错误:

需要使用Cookie,您的浏览器不会启用Cookie.

我不知道为什么会出现这个错误,因为我在我的脚本中接受了cookie.我希望有人可以帮助我,我已经用Google搜索并尝试了不同的Cookie方法.

import cookielib
import urllib2
import mechanize

br = mechanize.Browser()
cookiejar = cookielib.LWPCookieJar()
br.set_cookiejar( cookiejar )
br.set_handle_equiv( True )
br.set_handle_gzip( True )
br.set_handle_redirect( True ) 
br.set_handle_referer( True )
br.set_handle_robots( False )

br.set_handle_refresh( mechanize._http.HTTPRefreshProcessor(), max_time = 1)
br.addheaders = [ ( 'User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1' ) ]

user = "EMAIL"
pass = "PASSWORD"
url = "https://www.facebook.com/login.php"

#Open URL and submit
br.open(url)
br.select_form(nr=0)
br.form['email'] = user
br.form['pass'] = pass
response = br.submit()

#Opens …
Run Code Online (Sandbox Code Playgroud)

python cookies facebook mechanize

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

我应该如何使用mapped_column在SQLAlchemy中声明枚举(以启用类型提示)?

Enums我正在尝试在 SQLAlchemy 2.0 中使用mapped_column. 到目前为止,我有以下代码(取自另一个问题):

from sqlalchemy.dialects.postgresql import ENUM as pgEnum
import enum

class CampaignStatus(str, enum.Enum):
    activated = "activated"
    deactivated = "deactivated"

CampaignStatusType: pgEnum = pgEnum(
    CampaignStatus,
    name="campaignstatus",
    create_constraint=True,
    metadata=Base.metadata,
    validate_strings=True,
)

class Campaign(Base):
    __tablename__ = "campaign"

    id: Mapped[UUID] = mapped_column(primary_key=True, default=uuid4)
    created_at: Mapped[dt.datetime] = mapped_column(default=dt.datetime.now)
    status: Mapped[CampaignStatusType] = mapped_column(nullable=False)
Run Code Online (Sandbox Code Playgroud)

然而,这会在类本身的构造上产生以下错误 Campaign。

Traceback (most recent call last):
  File "<stdin>", line 27, in <module>
    class Campaign(Base):
...
AttributeError: 'ENUM' object has no attribute '__mro__'
Run Code Online (Sandbox Code Playgroud)

关于如何进行这项工作有任何提示吗?

SQLAlchemy 与 …

python postgresql sqlalchemy fastapi

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

为什么 type(enumType) 在 python 中返回 EnumMeta ?

from enum import Enum

class Color(Enum):
   RED=1;

>>>type(Color);
<class 'enum.EnumMeta'>
Run Code Online (Sandbox Code Playgroud)

我认为 Color 的类型应该是“class Enum”,但为什么它返回“enum.EnumMeta”?

这种行为与常见情况不同,幕后是什么?

python python-3.x

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

更新到 Xcode 12 后 PyAudio 安装错误

我已经更新到 Xcode 12,但是当我尝试安装 PyAudio 时,我总是遇到这样的错误:(我也尝试使用 sudo 进行安装,使用和不使用 venv,都得到了同样的错误......)

  • 操作系统:macOS 10.15.6 (19G2021)
  • 蟒蛇:3.8
  • Xcode 版本:12
Collecting pyaudio
  Using cached PyAudio-0.2.11.tar.gz (37 kB)
Using legacy 'setup.py install' for pyaudio, since package 'wheel' is not installed.
Installing collected packages: pyaudio
    Running setup.py install for pyaudio ... error
    ERROR: Command errored out with exit status 1:
     command: /Users/userid/Desktop/Workspace/Projects/hello-world/env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/dg/ppgz73fs3ml5zs4mxqtw_z_c0000gn/T/pip-install-qfayqnx7/pyaudio/setup.py'"'"'; __file__='"'"'/private/var/folders/dg/ppgz73fs3ml5zs4mxqtw_z_c0000gn/T/pip-install-qfayqnx7/pyaudio/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/dg/ppgz73fs3ml5zs4mxqtw_z_c0000gn/T/pip-record-8ls2_tdo/install-record.txt --single-version-externally-managed --compile --install-headers /Users/userid/Desktop/Workspace/Projects/hello-world/env/include/site/python3.8/pyaudio
         cwd: /private/var/folders/dg/ppgz73fs3ml5zs4mxqtw_z_c0000gn/T/pip-install-qfayqnx7/pyaudio/
    Complete output …
Run Code Online (Sandbox Code Playgroud)

python macos xcode pyaudio python-3.x

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

使用id参数为处理程序编写Yesod测试用例,其中id是实体的键

我一直在关注yesod教程,我仍然坚持如何构建一个涉及参数的单元测试,该视图也会打到数据库.回溯一点,我按照Echo.hs示例:

    getEchoR :: Text -> Handler Html
    getEchoR theText = do
        defaultLayout $ do
            $(widgetFile "echo")
Run Code Online (Sandbox Code Playgroud)

相应的测试,注意我必须使用Data.Text.pack将参数转换为Text

    yit "Echo some text" $ do
        get $ EchoR $ pack "Hello"
        statusIs 200
Run Code Online (Sandbox Code Playgroud)

现在我的模型定义如下:

Tag
    name Text
    type Text
Run Code Online (Sandbox Code Playgroud)

使用可以呈现的处理程序显然需要TagId作为参数

    getTagR :: TagId -> Handler Html
    getTagR tagId = do
        tag <- runDB $ get404 tagId
        defaultLayout $ do
            setTitle $ toHtml $ tagName tag
            $(widgetFile "tag")
Run Code Online (Sandbox Code Playgroud)

这是测试失败的地方.

    yit "Get a tag" $ do
        -- tagId is undefined
        get $ TagR tagId …
Run Code Online (Sandbox Code Playgroud)

haskell yesod

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

如何模拟在单独的命名空间中使用的类?

包装结构:

pqr/pq.py
test.py
Run Code Online (Sandbox Code Playgroud)

pqr/pq.py 有以下结构

其中lmn是全局安装的pip模块

结构 pq.py

from lmn import Lm

class Ab():

    def __init__(self):
        self.lm = Lm()

    def echo(self, msg):
        print msg
Run Code Online (Sandbox Code Playgroud)

test.py 有以下结构

from pqr.pq import Ab
Run Code Online (Sandbox Code Playgroud)

如何Lm()在这里模拟类以便测试Ab类中的所有方法?

python namespaces mocking python-2.7 python-unittest

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

为什么“5 in range(5,6) in [range(5,6)]”返回True?

我是 Python 新手,我碰巧注意到5 in range(5,6) in [range(5,6)]返回True. 有人可以向我解释这背后的逻辑是什么吗?这条线不等于True in [range(5,6)]?为什么不?它是如何真正起作用的?

谢谢 :)

python

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

a[0],a[1] = a[1],a[0]的过程中发生了什么?

今天下午我发现了一个无法理解的现象。我想交换ndarray中的两行,如下代码所示。

import numpy as np

a = np.random.randint(0, 40, size=(4, 4))
a = a + a.T
b = a.copy()
print(a)
b[1], b[3] = b[3], b[1]
print(b)
Run Code Online (Sandbox Code Playgroud)

但是一个意想不到的结果来了。打印结果如下

[[60 64 12 33]
 [64 30 29 60]
 [12 29 40 64]
 [33 60 64 76]]

[[60 64 12 33]
 [33 60 64 76]
 [12 29 40 64]
 [33 60 64 76]]
Run Code Online (Sandbox Code Playgroud)

我知道 a,b = b,a 是有效的。我想知道它们之间有什么区别?你能从记忆的角度谈谈这个问题吗?提前谢谢你!

python numpy

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

具有随机属性值的数据类的构造函数

您好,有人可以解释一下这里发生的事情:我想用随机值实例化对象。

@dataclass
class Particle:
    pos = (random.randint(0, 800), random.randint(0, 800))

for _ in range(3):
    p = Particle()
    print(p.pos)

Run Code Online (Sandbox Code Playgroud)

印刷:

  • (123, 586)
  • (123, 586)
  • (123, 586)

预期的行为将是具有不同值的三个元组。这里发生了什么事??

(当我使用普通类时,它按预期工作)

python python-dataclasses

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

类型注释:TypeVar:绑定、问题

在Python文档中,我们发现:

T = TypeVar('T')              # Can be anything
S = TypeVar('S', bound=str)   # Can be any subtype of str
A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
Run Code Online (Sandbox Code Playgroud)

我们还发现了这段代码:

def repeat(x: T, n: int) -> Sequence[T]:
    """Return a list containing n references to x."""
    return [x]*n


def print_capitalized(x: S) -> S:
    """Print x capitalized, and return x."""
    print(x.capitalize())
    return x


def concatenate(x: A, y: A) -> A:
    """Add two strings or bytes objects together."""
    return …
Run Code Online (Sandbox Code Playgroud)

python types mypy python-typing

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