AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / 问题

All perguntas(coding)

Martin Hope
Banone
Asked: 2025-04-24 20:45:18 +0800 CST

Oracle-DB, Unindo 3 Tabelas Limitando a segunda sem usar LATERAL() ou aninhamento

  • 8

Olá a todos, estou com um problema específico. Estou usando o Oracle DB

Para o exemplo, usarei o banco de dados Northwind.

Quero unir as tabelas: Clientes , Pedidos , Detalhes do pedido e Produtos .

Solução simples:

SELECT Customers.customerid, Customers.companyname, 
       Orders.orderid, Orders.orderdate, 
       Products.productname, Products.unitprice
FROM Customers
INNER JOIN Orders
  ON Customers.customerid= Orders.customerid
INNER JOIN Orderdetails 
  ON Orders.orderid = Orderdetails.orderid
INNER JOIN Products 
  ON Orderdetails.productid = Products.productid

Agora, quero limitar a saída aos 3 pedidos mais recentes por cliente, mostrando apenas o produto mais caro do pedido. A saída ficaria mais ou menos assim (Edição: a tabela não está sendo exibida corretamente):

ID do cliente nome da empresa id do pedido data do pedido nome do produto preço unitário
ALFKI Alfreds Futterkiste 11011 1998-04-09 Flotemysost 22
ALFKI Alfreds Futterkiste 10952 1998-03-16 Chucrute Rössle 46
ALFKI Alfreds Futterkiste 10835 15/01/1998 Raclette Courdavault 55
ANATR Ana Trujillo Emparedados e sorvetes 10926 1998-03-04 Mussarela de Giovanni 35
ANATR Ana Trujillo Emparedados e sorvetes 10759 28/11/1997 Mascarpone Fabioli 32
ANATR Ana Trujillo Emparedados e sorvetes 10625 1997-08-08 Camembert Pierrot 34
ANTÔN Antonio Moreno Taqueria 10856 28/01/1998 Mudança 19
... ... ... ... ... ...

Tenho uma solução usando LATERAL()e uma subseleção, mas, especialmente em big data, quero usar isso, LATERAL()tem muitos custos e torna o processo bastante lento. Então, quero ter uma solução SEMLATERAL()

Outra solução que tenho tentado é usar, ROW_NUMBER()que é muito mais rápida:

Select * FROM( 
  SELECT Customers.customerid, Customers.companyname, 
         Orders.orderid, Orders.orderdate, 
         Products.productname, Products.unitprice,
         ROW_NUMBER() OVER (PARTITION BY Customers.customerid
                            ORDER BY o.orderdate desc, p.unitprice desc ) AS rn
        ...
 ) WHERE rn <= 3;

Agora, se o limite fosse 1, não haveria problema. Mas não consigo encontrar uma solução aceitável para um limite >= 2 para os pedidos, como expliquei acima. Tentei uma segunda solução ROW_NUMBER() OVER (PARTIONION BY Orders.orderid ...), mas para que isso funcionasse, precisaria de algum aninhamento. O problema com o aninhamento é que estou prestes a criar algo como um analisador sintático para uma aplicação. E aninhamento em excesso pode se tornar muito complicado e confuso (especialmente para fins de manutenção).

Então eu estava pensando em uma junção, existe uma solução SQL pura no Oracle para:

  • Junte 3 ou mais mesas.
  • Use um Limite >= 2 em uma tabela (B) no meio da Junção que tem várias junções com outra tabela a seguir.
  • Isso não usa LATERAL()
  • Não é necessário aninhamento?

Editar/Adicionado: A maneira que tenho usado LATERAL():

Como este é um banco de dados de exemplo, tive que reestruturar o LATERAL que estava usando. (Para o exemplo do Northwind, tenho que unir produtos em detalhes do pedido em pedidos, no meu banco de dados não preciso da etapa extra com uma tabela entre eles)

SELECT C.customerid, C.companyname, 
       O.orderid, O.orderdate, 
       P.productname, P.unitprice
FROM Customers C
INNER JOIN LATERAL( 
  SELECT Orders.orderid, Orders.orderdate FROM Orders 
  WHERE Orders.customerid = C.customerid 
  ORDER BY orderdate DESC FETCH FIRST 3 ROWS ONLY ) O 
  ON 1=1 
INNER JOIN LATERAL( 
  SELECT Products.unitprice, Products.productname FROM Orderdetails 
  INNER JOIN Products ON Products.productid = Orderdetails.productid 
  WHERE Orderdetails.orderid = O.orderid 
  ORDER BY Products.unitprice DESC FETCH FIRST 1 ROWS ONLY) P on 1=1

Usei ON 1=1porque a instrução on é obrigatória para o Oracle em uma instrução Join, mas já estou unindo dentro do LATERAL().

sql
  • 1 respostas
  • 66 Views
Martin Hope
Grompok
Asked: 2025-04-24 20:25:41 +0800 CST

Como descrever tipos corretamente ao criar e usar tipos derivados em TypeScript?

  • 7

Estou tentando criar uma integração com StompJS no meu projeto que reutiliza conexões e assinaturas para os mesmos tópicos. Estou usando TypeScript e estou tendo um problema em que o TS me dá um erro independentemente do que eu faça. Se eu o suprimir, o código funciona, mas isso parece trapaça.

const RESULT_PARSER_BY_TOPIC = {
    '/topic/user': (value: string): { id: string } => JSON.parse(value),
    '/topic/game': (value: string): string => value,
    '/topic/messages': (value: string): number => parseInt(value, 10),
} as const;
type Topic = keyof typeof RESULT_PARSER_BY_TOPIC;
type ResultParser<_Topic extends Topic> = typeof RESULT_PARSER_BY_TOPIC[_Topic];
type Result<_Topic extends Topic> = ReturnType<ResultParser<_Topic>>;
type Consumer<_Topic extends Topic> = (value: Result<_Topic>) => void;
type Unsubscribable = { unsubscribe: () => void };
type Subscription<_Topic extends Topic> = {
    producer: Promise<Unsubscribable>;
    consumers: Set<Consumer<_Topic>>;
};
export type Unsubscribe = () => void;

const SUBSCRIPTION_BY_TOPIC: Partial<{
    [_Topic in Topic]: Subscription<_Topic> // I think problem is with this type
}> = {};

export function subscribe<_Topic extends Topic>(
    topic: _Topic,
    callback: Consumer<_Topic>
): Unsubscribe {
    if (SUBSCRIPTION_BY_TOPIC[topic] === undefined) {
        SUBSCRIPTION_BY_TOPIC[topic] = { // <-- I get the error here 
            consumers: new Set(),
            producer: subscribeToTopic(topic)
        } as Subscription<_Topic>;
    }
    SUBSCRIPTION_BY_TOPIC[topic].consumers.add(callback);
    return () => {
        // some clean up logic...
    };
}

O objetivo de tudo isso é ter um método de assinatura fácil de usar. Ele deve validar se os parâmetros do tópico e do consumidor são compatíveis:

subscribe('/topic/user', (value) => {...}); // should infere that "value" is { id: string }
subscribe('/topic/game', (value) => {...}); // should infere that "value" is string

//if parameter mismatch there should be an error
subscribe('/topic/messages', (value: boolean) => {...}); // <- error: "(value: number) => void" expected

Mas recebo um erro de tipo ao tentar atribuir uma nova Assinatura ao mapeamento de assinaturas (isso ocorre quando alguém assina um novo tópico; caso contrário, reutilizo uma assinatura de tópico existente), que uso para rastrear se o tópico ainda tem assinantes ativos (na lógica de limpeza: se o último assinante cancelar a assinatura, eu cancelo a assinatura do tópico). O erro:

TS2322:
Type Subscription<_Topic> is not assignable to type Partial<{
    "/topic/user": Subscription<"/topic/user">;
    "/topic/game": Subscription<"/topic/game">;
    "/topic/messages": Subscription<"/topic/messages">;
}>[_Topic]

Type Subscription<_Topic> is not assignable to type Subscription<"/topic/user"> & Subscription<"/topic/game"> & Subscription<"/topic/messages">

Type Subscription<_Topic> is not assignable to type Subscription<"/topic/user">

Type _Topic is not assignable to type "/topic/user"

Type "/topic/user" | "/topic/game" | "/topic/messages" is not assignable to type "/topic/user"

Type "/topic/game" is not assignable to type "/topic/user"

Esta linha em particular me confunde:

Type Subscription<_Topic> is not assignable to type Subscription<"/topic/user"> & Subscription<"/topic/game"> & Subscription<"/topic/messages">

É como se o TS não conseguisse resolver que estou tentando atribuir um valor para uma chave específica, e não para qualquer chave no mapeamento.

Tentei converter diferentes partes do código para os tipos correspondentes, mas não obtive resultados significativos. O que "funcionou" foi alterar o tipo "Subscription.consumers" para Set<any>:

type Subscription = {
    producer: Promise<Unsubscribable>;
    consumers: Set<any>;
};

Mas eu gostaria de evitar isso, o objetivo deste projeto TS é que eu aprenda a usar melhor o TS.

typescript
  • 1 respostas
  • 59 Views
Martin Hope
Jordi Calvet Torras
Asked: 2025-04-24 19:32:53 +0800 CST

Por que minha extensão de idioma só está disponível no espaço de trabalho da pasta do usuário?

  • 4

Criei minha primeira extensão de linguagem no vsc (macos 14.7.5 Sonoma) usando "yo code" no Terminal.

A pasta foi criada corretamente na minha pasta de usuários. Movi essa pasta para ~/.vscode/extensions

Se eu abrir minha pasta de usuários como um espaço de trabalho no vsc, posso instalar e usar minha extensão de linguagem.

Mas se eu abrir a subpasta de outro usuário, meu idioma não será instalado e não estará disponível.

O que estou fazendo errado?

Captura de tela das extensões do Visual Studio Code

Código terminal yo

Minha intenção é usar minha extensão de linguagem quando eu abrir qualquer arquivo do espaço de trabalho ~/Documents/Trevliga Spel/Scripts

Reinstalei o vsc depois de remover todos os dados do vsc, mas não funcionou.

visual-studio-code
  • 1 respostas
  • 36 Views
Martin Hope
basejumping_turtle
Asked: 2025-04-24 19:30:40 +0800 CST

Darts e LightGBM: os nomes das colunas originais não podem ser recuperados devido à importância do recurso

  • 7

Problema: Estou executando um LightGBMModel via Darts com algumas covariáveis ​​(futuras). Quero entender a relevância dos diferentes recursos (atrasados).

Em particular, gostaria de recuperar a importância do recurso para a variável-alvo defasada, bem como para as covariáveis, usando os nomes das colunas originais do objeto TimeSeries do Darts. No objeto do modelo LightGBM, após o ajuste, só consigo ver nomes de colunas genéricos ("column_0", "column_1"). Como posso conectar isso a nomes significativos (por exemplo, target_lag_1, target_lag_2, name_of_covariate_lag_1, ...)?

Quero incluir várias covariáveis ​​futuras (por exemplo, vários atributos de data e hora, como o dia da semana, com codificações diferentes). Não importa onde os atributos de data e hora são criados (por exemplo, usando o Pandas, usando o próprio Darts).

Exemplo mínimo reproduzível Adotei o exemplo da documentação

Este é o código da documentação, apenas configurando os dados e ajustando o modelo:

from darts.datasets import WeatherDataset
from darts.models import LightGBMModel


series = WeatherDataset().load()


# predicting atmospheric pressure
target = series['p (mbar)'][:100]


# optionally, use past observed rainfall (pretending to be unknown beyond index 100)
past_cov = series['rain (mm)'][:100]


# optionally, use future temperatures (pretending this component is a forecast)
future_cov = series['T (degC)'][:106]


# predict 6 pressure values using the 12 past values of pressure and rainfall, as well as the 6 temperature
# values corresponding to the forecasted period
model = LightGBMModel(
    lags=12,
    lags_past_covariates=12,
    lags_future_covariates=[0,1,2,3,4,5],
    output_chunk_length=6,
    verbose=-1
)


model.fit(target, past_covariates=past_cov, future_covariates=future_cov)

Após ajustar o modelo, agora quero analisar a importância dos recursos.

for i, estimator in enumerate(model.model.estimators_):
    print(f"Target {i} Importance (Gain):")

    # Access LightGBM booster
    booster = estimator.booster_

    # Get feature names
    feature_names = booster.feature_name()

    # Get gain-based importance
    importance = booster.feature_importance(importance_type='gain')

    # Create mapping
    named_importance = dict(zip(feature_names, importance))
    print(named_importance)

Isso retorna a importância do recurso para várias colunas em cada estimador. Mas os nomes dos recursos são nomes genéricos gerados pelo LightGBM ('Column_1', 'Column_2', ...). Não sei como vincular isso de volta aos nomes das colunas originais no objeto TimeSeries do Darts (por exemplo, 'rain (mm)', ''T (degC)') com as informações adicionais às quais o atraso da importância do recurso se refere.

python
  • 1 respostas
  • 32 Views
Martin Hope
mortb
Asked: 2025-04-24 19:30:10 +0800 CST

Problemas ao usar WebView2 no LinqPad

  • 6

Preciso escrever um programa LinqPad que use WebView2.

Eu instalei o pacote nuget Microsoft.Web.WebView2 versão 1.0.3179.45 (mais recente), mas não consigo fazer o programa funcionar.

Após instalar o nuget o LinqPad encontra apenas o namespace Microsot.Web.Webview2.Core

O problema é que a classe WebView2 que preciso usar está localizada em Microsoft.Web.WebView2.WinForms ou Microsoft.Web.WebView2.Wpf.

Como faço para que o LinqPad encontre os namespaces ausentes?

c#
  • 2 respostas
  • 82 Views
Martin Hope
Anthonyx82
Asked: 2025-04-24 19:30:07 +0800 CST

REMAP_DATAFILE não funciona durante a importação do Data Pump no Oracle 19c

  • 6

Estou tentando importar um dump completo do banco de dados impdppara um ambiente diferente do Oracle 19c (Standard Edition 2), mas o REMAP_DATAFILEparâmetro parece não estar funcionando.

Meu objetivo é importar um dump de um banco de dados de origem chamado db_source para um destino chamado db_target , redirecionando todos os arquivos de dados para um caminho de pasta diferente ( /opt/oracle/oradata/oradata/DB_TARGET/pdb_target/), já que a estrutura do sistema de arquivos difere entre os ambientes.

Isso é o que tenho no meu .pararquivo:

REMAP_DATAFILE=/opt/oracle/oradata/oradata/DB_SOURCE/:/opt/oracle/oradata/oradata/DB_TARGET/pdb_target/

No entanto, continuo recebendo erros como:

ORA-39083: Object type TABLESPACE:"DATOSLOB" failed to create with error:
ORA-01119: error in creating database file '/opt/oracle/oradata/oradata/DB_SOURCE/DATOSLOB_01'
ORA-27038: created file already exists

Confirmei que estou conectado ao PDB correto ( pdb_target) usando SHOW CON_NAME;.

Também gerei uma visualização SQL usando SQLFILE=preview.sqle notei que os caminhos do arquivo de dados não estão sendo remapeados , eles ainda apontam para /opt/oracle/oradata/oradata/DB_SOURCE/.

Encontrei alguém enfrentando o mesmo problema aqui (ainda sem solução): https://forums.oracle.com/ords/apexds/post/data-pump-datafile-remapping-does-not-work-5729

Como posso REMAP_DATAFILEtrabalhar corretamente no Oracle 19c? Há algum requisito adicional ou bug conhecido?

database
  • 1 respostas
  • 32 Views
Martin Hope
jpo38
Asked: 2025-04-24 19:23:07 +0800 CST

O código C++ não consegue iterar a pasta do aplicativo ao implantar um aplicativo Qt no Android

  • 8

Estou migrando algum código do Qt 6.2.2 para o 6.9.0 no Android.

Tenho um código procurando arquivos .so na pasta do aplicativo (para possíveis plugins a serem carregados). Este código costumava iterar a pasta do aplicativo usando std::filesystemcódigo padrão. Não funciona mais. Consigo iterar a pasta HOME, mas não a pasta do aplicativo. Surpreendentemente QDir, consigo, mas meu código que faz isso é puramente C++/STL, não consigo usar Qt neste nível.

Algo mudou na estrutura do apk? Por que o STL não consegue ver a pasta do aplicativo? Existe alguma solução alternativa?

Aqui está um programa de exemplo muito simples:

#include <QApplication>
#include <QMainWindow>
#include <QLabel>
#include <QDebug>
#include <QDir>
#include <filesystem>
void listDirContent(QString path)
{
    {
        QDir dir(path);
        qDebug() << "Using Qt, " << path << ":";
        for (auto file : dir.entryList())
            qDebug() << file;
    }
    {
        std::filesystem::path std_path = path.toStdString();
        qDebug() << "using std, " << std_path.c_str() << ":";
        std::filesystem::directory_iterator itDir;
        std::filesystem::directory_iterator itEnd;
        std::filesystem::path Path;
        try
        {
            itDir = std::filesystem::directory_iterator(std_path);
            qDebug() << "Found files:";
            for (; itDir != itEnd; itDir++)
            {
                qDebug() << QString(itDir->path().c_str());
            }
            qDebug() << "end files";
        }
        catch (const std::exception& e)
        {
            qDebug() << "FAILED" << e.what();
        }
    }
}

int main( int argc, char* argv[] )
{
    QApplication app(argc, argv);
    QMainWindow wnd;
    wnd.setCentralWidget(new QLabel("Hello",&wnd));
    wnd.show();
    listDirContent(qApp->applicationDirPath());
    listDirContent(QDir::homePath());
    return app.exec();
}

Este programa produz:

D/default (18701): Using Qt,  "/data/app/org.qtproject.example.TestListDir-UzLzgFYV8gnNNAzUQkD1Lw==/base.apk!/lib/armeabi-v7a" :
D/default (18701): "armeabi-v7a"
D/default (18701): "libc++_shared.so"
D/default (18701): "libplugins_iconengines_qsvgicon_armeabi-v7a.so"
D/default (18701): "libplugins_imageformats_qgif_armeabi-v7a.so"
D/default (18701): "libplugins_imageformats_qico_armeabi-v7a.so"
D/default (18701): "libplugins_imageformats_qjpeg_armeabi-v7a.so"
D/default (18701): "libplugins_imageformats_qsvg_armeabi-v7a.so"
D/default (18701): "libplugins_platforms_qtforandroid_armeabi-v7a.so"
D/default (18701): "libplugins_styles_qandroidstyle_armeabi-v7a.so"
D/default (18701): "libQt6Core_armeabi-v7a.so"
D/default (18701): "libQt6Gui_armeabi-v7a.so"
D/default (18701): "libQt6Svg_armeabi-v7a.so"
D/default (18701): "libQt6Widgets_armeabi-v7a.so"
D/default (18701): "libTestListDir_armeabi-v7a.so"
D/default (18701): using std,  /data/app/org.qtproject.example.TestListDir-UzLzgFYV8gnNNAzUQkD1Lw==/base.apk!/lib/armeabi-v7a :
D/default (18701): FAILED filesystem error: in directory_iterator::directory_iterator(...): No such file or directory ["/data/app/org.qtproject.example.TestListDir-FvVxa-eHXbBc9Zpa2Q0uGQ==/base.apk!/lib/armeabi-v7a"]
D/default (18701): Using Qt,  "/data/user/0/org.qtproject.example.TestListDir/files" :
D/default (18701): "."
D/default (18701): ".."
D/default (18701): "profileInstalled"
D/default (18701): "profileinstaller_profileWrittenFor_lastUpdateTime.dat"
D/default (18701): using std,  /data/user/0/org.qtproject.example.TestListDir/files :
D/default (18701): Found files:
D/default (18701): /data/user/0/org.qtproject.example.TestListDir/files/profileinstaller_profileWrittenFor_lastUpdateTime.dat
D/default (18701): /data/user/0/org.qtproject.example.TestListDir/files/profileInstalled
D/default (18701): end files

Veja que std::filesystem não consegue iterar /data/app/org.qtproject.example.TestListDir-UzLzgFYV8gnNNAzUQkD1Lw==/base.apk!/lib/armeabi-v7aa pasta, ele relata que a pasta não existe, enquanto o Qt consegue iterar por ela.

Com o Qt 6.2.2, ele costumava listar os arquivos da pasta do aplicativo (o que era um pouco diferente, não havia "base.apk!" no caminho).

Relatei um bug no Qt: https://bugreports.qt.io/browse/QTBUG-136214

Alguém tem alguma ideia de como contornar esse problema? Como fazer com que o std::filestem consiga acessar a pasta do aplicativo?


Editar, std::filesystemé capaz de iterar /data/app/org.qtproject.example.TestListDir-UzLzgFYV8gnNNAzUQkD1Lw==, visto base.apkcomo um arquivo. Parece QDirsuportar um caso especial em que o nome do arquivo apk é seguido por !e é possível examiná-lo como se fosse, na verdade, uma pasta...

  • 1 respostas
  • 74 Views
Martin Hope
resurrected user
Asked: 2025-04-24 19:17:27 +0800 CST

asyncio.server: como filtrar por endereço IP remoto

  • 5

Tenho uma classe de servidor de socket TCP que roda em CPython e MicroPython . Ela roda sem problemas. Gostaria apenas de estender sua funcionalidade com um filtro de IP. De uma versão anterior, que ainda era um servidor http, tenho um padrão de expressão regular para corresponder ao endereço IP da solicitação. Mas onde posso intervir e inspecionar o endereço remoto para aceitar ou recusar a conexão?

Observação: o objeto leitor em newConnection não tem o atributo '_transport' no microPython.

def log(*args, prio = 0):
    if prio >= 0:
        print(*args)



class TcpServer(SocketBase):
    
    def __init__(self, port=8888, requestHandler = None, ipMask = r"192.168.(\d+).(\d+)|localhost|127.0.0.1"):
        '''
        :param requestHandler: callable with parameters request, response
        '''
        super().__init__(host="0.0.0.0", port = port)
        self.requestHandler = requestHandler
        self.ipRange        = re.compile(ipMask)
        self.timeout        = TimeOut()

    
    async def start(self):
        self.server = await asyncio.start_server(self.newConnection, host=self.host, port=self.port)
        log("server started at ", (self.host, self.port), prio=1)
        
        while True:
            await asyncio.sleep(10)

    
    
    async def newConnection(self, reader, writer):
        log("Connected")

        self.connection = (reader, writer)
        self.timeout.extend(30)
        while not self.timeout.expired():
            if not await self.pollOpenConnection(reader, writer):
                # not data, then doze a while:
                await asyncio.sleep(1./25.)
                
        writer.close()
        log("Disconnected")
        
        
sockets
  • 1 respostas
  • 35 Views
Martin Hope
Hasan Hasan
Asked: 2025-04-24 18:42:03 +0800 CST

altura: calc((50%-10px)/1); não funciona

  • 5

Estou tentando criar este layout, mas há um problema quando quero deixar a margem inferior abaixo do elemento vermelho .up. Quando uso a propriedade calc, a altura não está correta, o que faz com que o elemento rosa suba um pouco em vez de ficar na mesma altura do elemento azul.

.parent {
  width: 500px;
  height: 300px;
  background-color: #eee;
  padding: 10px;
  margin: 50px auto;
  overflow: hidden;
}
.child-1 {
  width: calc((50% - 10px)/1);
  margin-right: 10px;
  height: 100%;
  background-color: blueviolet;
  float: left;
}
.child-2 {
  width: 50%;
  height: 100%;
  float: right;

  & .up {
    width: 100%;
    height: calc((50% - 10px)/1);
    margin-bottom: 10px;
    background-color: red;
  }

  & .down {
    width: 100%;
    height: 145px;
    background-color: pink;
  }
}
<div class="parent">
    <div class="child-1"></div>
    <div class="child-2">
      <div class="up"></div>
      <div class="down"></div>
    </div>
  </div>

Eu tentei o mesmo recurso na largura com os mesmos valores e funcionou e consegui o que queria, mas não funcionou na altura, por quê??

css
  • 1 respostas
  • 73 Views
Martin Hope
ESBM74
Asked: 2025-04-24 18:38:27 +0800 CST

Determinar se uma função/método tem uma implementação que não é "pass"

  • 5

Tenho uma classe que declara uma propriedade em Python, a implementação padrão para esse método é pass, por exemplo:

class A:

@property
def something(self):
    pass

Esta propriedade tem como objetivo declarar uma funcionalidade para estender classes, e eu quero usá-la para declarar um campo, onde se as classes de extensão a implementarem, o campo será inicializado com algum valor, e se não, o valor do campo será None.

Como posso verificar se os usuários implementaram?

Tentei usar __code__e hasattr()mas não funcionou.

python
  • 2 respostas
  • 71 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve