小编Far*_* ET的帖子

如何在 Python 中输入类的对象也遵守协议的提示?

我有一组类,让我们称它们为Foo和,它们都继承自当前范围之外定义的Bar基类(不是由我定义的)。Father我定义了一个DummyProtocol具有 function 的协议类do_something

class DummyProtocol(Protocol):
   def do_something(self):
      ...
   

class Foo(Father):
   def do_something(self):
      pass

class Bar(Father):
   def do_something(self):
      pass

Run Code Online (Sandbox Code Playgroud)

我有一个功能create_instance

def create_dummy_and_father_instance(cls, *args, **kwargs):
    return cls(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

我想以某种方式提示它,即 cls 被提示接受一个Father也实现DummyProtocol.

所以我将函数更改为 this 以表明 cls 是一个继承自 和 的Father类型DummyProtocol

def create_dummy_and_father_instance(
    cls: Type[tuple[Father, DummyProtocol]], *args, **kwargs
):
    return cls(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

但我在以下位置收到此错误mypy

Cannot instantiate type "Type[Tuple[Father, DummyProtocol]]"
Run Code Online (Sandbox Code Playgroud)

python type-hinting mypy

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

Minio 控制台无法在 nginx 反向代理后面访问

我正在尝试将example.com/minio位置重定向到 minio 控制台,该控制台在 nginx 代理后面运行,两者均由 docker compose 文件运行。我的问题是,当我尝试将 minio 端点反向代理到路径时,/minio它不起作用,但是当我minio在 nginx 反向代理中的根路径上运行反向代理时,它起作用。我真的无法找出问题所在。

这是我的撰写文件:

services:
  nginx:
    container_name: nginx
    image: nginx
    restart: unless-stopped
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./log/nginx:/var/log/nginx/
  minio:
    image: minio/minio
    container_name: minio
    volumes:
      - ./data/minio/:/data
    command: server /data --address ':9000' --console-address ':9001'
    environment:
      MINIO_ROOT_USER: minio_admin
      MINIO_ROOT_PASSWORD: minio_123456
    ports:
      - 9000
      - 9001
    restart: always
    logging:
      driver: "json-file"
      options:
        max-file: "10"
        max-size: 20m
    healthcheck:
      test: ["CMD", "curl", "-f", "http://127.0.0.1:9000/minio/health/live"]
      interval: 30s …
Run Code Online (Sandbox Code Playgroud)

nginx docker docker-compose minio

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

如何将 gensim 创建的 fasttext 模型导出到二进制文件?

我正在尝试将 gensim 创建的 fasttext 模型导出到二进制文件。但文档并不清楚如何实现这一目标。到目前为止我所做的:

model.wv.save_word2vec_format('model.bin')
Run Code Online (Sandbox Code Playgroud)

但这似乎并不是最好的解决方案。因为后来当我想使用以下方式加载模型时:

fasttext.load_facebook_model('model.bin')
Run Code Online (Sandbox Code Playgroud)

我陷入了无限循环。加载由函数fasttext.model创建的内容model.save('fasttext.model)在大约 30 秒内完成。

python nlp gensim fasttext

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

如何实现抽象基类的构造函数?

我正在尝试编写一个基本抽象类,它具有一些将使用构造函数初始化的属性。到目前为止我有这个:

from abc import ABC, abstractmethod

class A(ABC):
    def __init__(self, n, *params):
        self.n = n
        self.initialize_params(*params) #I want to do this in all subsclasses of A
    def initialize_params(self, *params)
       pass
    @abstractmethod
    def do(self):
        pass

class B(A):
    def __init__(self, m, n, *super_params):
        self.m = m
        super(A, self).__init__(n, *super_params)
    def do(self):
        print("this is B")
Run Code Online (Sandbox Code Playgroud)

但这会TypeError因为__init__B 中 A 的实例化而抛出。正确的方法是什么?

python inheritance abstract-class abc python-3.x

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