当我想在Python中键入一个元组时,如:
def func(var: tuple[int, int]):
# do something
func((1, 2)) # would be fine
func((1, 2, 3)) # would throw an error
Run Code Online (Sandbox Code Playgroud)
需要提供元组中的确切项目数.这与列表类型提示不同:
def func(var: list[int]):
# do something
func([1]) # would be fine
func([1, 2]) # would also be fine
func([1, 2, 3]) # would also be fine
Run Code Online (Sandbox Code Playgroud)
在某种程度上,这是因为元组的类型.因为它们的设计不会被更改,所以您必须对其中的项目进行硬编码.
所以我的问题是,有没有办法让元组类型提示中的项目数量变得灵活?我试过类似的东西,但它不起作用:
def func(var: tuple[*int]):
Run Code Online (Sandbox Code Playgroud) 我可以用来pip install xx --user为用户安装软件包。使用pipenv时,我可以pipenv install --system用来创建虚拟环境而不是在系统上安装要求,但是如何告诉Pipenv使用pip --user标志并仅为当前用户安装所需的软件包?
另一个问题可能是,如何使用simple pip从Pipfile安装所有要求?
据我了解,这里var是一个类变量:
class MyClass:
var = 'hello'
def __init__(self):
print(self.var)
Run Code Online (Sandbox Code Playgroud)
那是一个实例变量:
class MyClass:
def __init__(self, var):
self.var = var
print(self.var)
Run Code Online (Sandbox Code Playgroud)
我遇到了问题,我正在寻找一种方法来使实例变量的类型提示成为可能。我当然可以使用类型提示参数,def __init__(self, var: str):但这不会影响实例变量本身。
然后我注意到在一些描述中(如这里),他们使用术语实例变量来表示var这样的:
class MyClass:
var : str = 'hello'
def __init__(self, var : str = None):
self.var = var if var
print(self.var)
Run Code Online (Sandbox Code Playgroud)
这确实是解决方案,但这仍然是一个实例变量吗?因为它是在类体中定义的,所以在我的理解中它将是一个类变量。如果您要为 var 使用列表,则对该列表变量的所有更改都将通过实例共享。
但在这种情况下不会有问题,因为字符串被替换并且不会被其他实例共享。但是,如果您将其称为实例变量,对我来说似乎是错误的,而我不知道是否应该像这样使用它只是为了让类型提示起作用。
我仍然有一些问题需要在symfony中处理我的资产.在最佳实践说,我应该保存我的资产web/.但我不喜欢在那里存储我的原始sass文件,因为它是一个公共文件夹,我认为只应该存储编译或静态文件.
这就是我存储它们(js和sass)的原因app/Resources.我的assetic.read_from是app/Resources.但是有一些捆绑,由符号链接assets:install到web/bundles/.
现在,当我想在我的twig文件中包含这个bundle-assets时,我必须../../web/bundles/..在样式表块中去那里.这看起来不是很干净,所以我做了一个符号链接 app/Resources/bundles->web/bundles/,这是有效的.
但我仍然认为它太过小巧,我想知道是否有一种更清洁的方式可以更好地在一个地方收集我的资产.
我创建了一个新的包,其中应包含twig文件.默认情况下,generate bundle命令行(in src/TestBundle/Resources/views/test.html.twig)已添加了一个twig文件.在IndexAction中还自动添加了render-command:
return $this->render('TestBundle:test.html.twig', $data);
但是当我调用IndexAction时,我得到一个模板未找到错误,并且错误说,symfony只查看
/app/Resources/views,
/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form
Run Code Online (Sandbox Code Playgroud)
但不是 /src/TestBundle/...
为什么symfony会忽略bundle资源?我怎么能改变呢?
我有一个 git 子模块 B,它作为我的 django 项目 A 中的应用程序工作。B 有自己的 Pipfile 和 Pifile.lock。A还有一个Pipfile和Pipfile.lock。如何使用 Pipenv 在同一 virtuaelenv 中的两个 pipfile 中安装库?
这是我在 Django 项目中的异常处理示例:
def boxinfo(request, url: str):
box = get_box(url)
try:
box.connect()
except requests.exceptions.ConnectionError as e:
context = {'error_message': 'Could not connect to your box because the host is unknown.'}
return render(request, 'box/error.html', context)
except requests.exceptions.RequestException as e:
context = {'error_message': 'Could not connect to your box because of an unknown error.'}
return render(request, 'box/error.html', context)
Run Code Online (Sandbox Code Playgroud)
我可以通过这样的方式解决它:
try:
box.connect()
except Exception as e:
return error_handling(request, e)
Run Code Online (Sandbox Code Playgroud)
——
def error_handling(request, e):
if type(e).__name__ == requests.exceptions.ConnectionError.__name__:
context = {'error_message': …Run Code Online (Sandbox Code Playgroud) 我对Github上的分叉存储库进行了一些更改,并在pull请求中发送.业主有一些我在当地修复的小问题.我该如何提交这些修补程序?当我只是提交并推送时,拉请求中是否还会有一个"固定"提交?
为了保持清洁,我想重新修改或修改我的最后一次提交并强制推送,但是拉动请求会发生什么呢?它会自动删除还是只是添加(我想要发生什么)?
我想使用python请求登录Laravel应用并获取登录后第一页的内容,我尝试过:
import requests
import re
URL = 'laravelapp.url'
session = requests.session()
front = session.get(URL)
csrf_token = re.findall(r'<input type="hidden" name="_token" value="(.*)"', front.text)[0]
print(csrf_token)
print(session.cookies['XSRF-TOKEN'])
payload = {
'email': 'email@example.com',
'password': 'testtest',
'_token': csrf_token,
}
r = requests.post(URL + '/login', data=payload)
print(r)
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这只会返回 419 错误。那么 csrf 令牌似乎有什么问题吗?但我不明白出了什么问题,cookie 应该由.sessions()我管理,我从登录表单中提取了 csrf 令牌并将其作为参数放入发布数据。那么,缺少什么?
我在Document和Tag之间有很多关系.所以一个Document可以有几个Tags,一个Tag可以分配给不同Document的.
这是 Tag
AppBundle\Entity\Tag:
type: entity
table: tags
repositoryClass: AppBundle\Repository\TagRepository
manyToMany:
documents:
targetEntity: Document
mappedBy: tags
id:
id:
type: integer
id: true
generator:
strategy: AUTO
fields:
label:
type: string
length: 255
unique: true
Run Code Online (Sandbox Code Playgroud)
和 Document
AppBundle\Entity\Document:
type: entity
table: documents
repositoryClass: AppBundle\Repository\DocumentRepository
manyToMany:
tags:
targetEntity: Tag
inversedBy: documents
joinTable:
name: documents_tags
id:
id:
type: integer
id: true
generator:
strategy: AUTO
fields:
title:
type: string
length: 255
Run Code Online (Sandbox Code Playgroud)
现在我想搜索具有标签所有文件animal和fiction.我如何用学说实现这一目标?
就像是 …