RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-305162

Alexander Lonberg's questions

Martin Hope
Alexander Lonberg
Asked: 2024-03-04 02:29:30 +0000 UTC

如何注册两个logging.Logger?

  • 5

有这样一个注册功能logger

import logging

def register_logger(
    base_path: PathLike[str],
    file_name: str,
    register_name: str | None,
    log_level: Any,
) -> logging.Logger:
    path = Path(base_path, f"{file_name}.log")
    logger = logging.getLogger(register_name)
    logger.setLevel(level=log_level)
    handler = logging.FileHandler(path, encoding="utf8")
    formatter = logging.Formatter("\n%(asctime)s - %(levelname)s\n%(message)s")
    handler.setFormatter(formatter)
    logger.addHandler(handler)

    return logger

您需要注册两个处理程序:一个未命名,第二个有名称。按照惯例,它看起来像这样:

logger = register_logger(path, "server", None, 1)
logger_web = register_logger(path, "web", "web", 1)

# И допустим в другом файле
logger_web = logging.getLogger("web")

但是,当您尝试使用 时logger_web.error(...),后者会重复两个文件中的条目。与此同时,无名者logger只写入自己的文件.../path/server.log。

这里可能出了什么问题,如何避免重复条目?

python
  • 1 个回答
  • 42 Views
Martin Hope
Alexander Lonberg
Asked: 2023-06-18 00:12:26 +0000 UTC

<INPUT PLACEHOLDER> 在任何 HTML/CSS/JS 技术上模拟 <DIV CONTENTEDITABLE>?[解决了]

  • 5

我正在尝试<input placeholder="...">模拟<div contenteditable>.

首先想到的是添加::before,关注正在编辑的元素后,<div ...>删除包含的类。

问题:尝试运行代码并单击文本“编辑字段...”,就像您通常所做的那样<input type=text>- 焦点一切正常,但文本光标丢失。我猜是因为点击是在::before. 如果您单击一个可用空间(右侧),一切都会按预期进行 -placeholder它消失并且光标出现在该字段中,之后您可以立即打印。

问题:如何达到预期的效果?当然没有任何额外的层。也许有一些 JS / API / CSS 允许您使元素::before不与其父元素重叠?

已解决:@Grundy CSS pointer-events 的第一条评论:无;

const { createApp, ref } = Vue

const comp = {
  setup() {
    const showPh = ref(true)
    return {
      showPh
    }
  },
  template: `
   <div
      v-bind:class="['edit', {['edit-ph']: showPh}]"
      contenteditable="true"
      @focus="() => {showPh = false}"
      @blur="({target}) => {target.textContent = '';showPh = true}"
   ></div>

   <p>Для сброса надо кликнуть в любом месте.</p>`
}

createApp(comp).mount('#app')
body {
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  font-size: 24px;
}

.edit {
  border: solid 1px rgb(182, 182, 182);
  padding: 0.2em;
}

.edit-ph::before {
  position: relative;
  content: 'Отредактируйте поле ...';
  color: rgb(182, 182, 182);
  cursor: text;
  /* РЕШЕНИЕ */
  pointer-events: none;
}
<script src="https://unpkg.com/vue@next"></script>
<div id="app"></div>

javascript
  • 1 个回答
  • 18 Views
Martin Hope
Alexander Lonberg
Asked: 2022-07-01 14:41:57 +0000 UTC

除了 !important 之外还有 CSS 修饰符吗?

  • 1

该文档页面说:

方法style.getPropertyPriority(property)返回优先级,例如“重要”

为什么说“例如|例如”?

还有其他优先属性修饰符吗?

css
  • 1 个回答
  • 10 Views
Martin Hope
Alexander Lonberg
Asked: 2022-04-30 12:24:48 +0000 UTC

C# .NET 中存储的类实例属性的值在哪里?

  • 4

我们有这个类:

class Foo {
  public int Property => 123;
}

如您所见,该属性仅getter且始终返回一个常量值 - 文字123。

如果创建 2 个或更多实例,值会被复制132,还是Property会指向同一个内存区域?

哪个选项会更便宜Foo或Bar?

class Bar {
  private static readonly int _ConstValue = 123;
  public int Property => _ConstValue;
}

在此处输入图像描述

c#
  • 1 个回答
  • 10 Views
Martin Hope
Alexander Lonberg
Asked: 2022-04-29 11:36:12 +0000 UTC

编译器丢失类型?

  • 0

工具提示显示类型:

在此处输入图像描述

...但是编译会引发错误。乃至 ”!” 没有帮助。

在此处输入图像描述

public struct SOptions<T> where T : notnull {
  public static SOptions<T> Default => new();
  public int SomeProperty = 123;
}

public class Options<T> where T : notnull {
  public int SomeProperty { get; private set; } = 0;

  public Options(SOptions<T> options) => SetOptions_1(options);

  public void SetOptions_1(SOptions<T>? options) {
    options ??= SOptions<T>.Default;
    // Строка ниже вызывает ошибку, код не компилируется
    // error CS1061
    SomeProperty = options!.SomeProperty;
  }

  // ... Такой вариант ошибок не вызывает.
  public void SetOptions_2() {
    var options = SOptions<T>.Default;
    SomeProperty = options.SomeProperty;
  }

  // ... С этим тоже работает.
  public void SetOptions_3(SOptions<T>? options) {
    options ??= SOptions<T>.Default;
    SomeProperty = ((SOptions<T>)options).SomeProperty;
  }
}

dotnetfiddle.net

c#
  • 1 个回答
  • 10 Views
Martin Hope
Alexander Lonberg
Asked: 2022-06-27 17:59:30 +0000 UTC

如何为剩余参数定义多种类型?

  • 1

打字稿。
有一些课。
一个方法something(...)可以接受多个参数,这在实例化之前是已知的。

// Тип "T" должен описать последовательность типов метода something
class Foo<T> {

  #callback: (...args: T[]) => void

  constructor(callback: (...args: T[]) => void) {
    this.#callback = callback
  }

  // Как быть с параметрами (a: number, b:string)
  something(...args: T[]): void {
    this.#callback(...args)
  }
}

// Здесь уже известно какие параметры будет принимать метод `Foo.something(...)`,
// и соответственно какие получит `callback`.
const callback = (a: number, b: string): void => {
  // ...
}

// Это разумеется не сработает, даже callback не будет соответствовать ожидаемому типу
const cfoo = new Foo<(number | string)>(callback)
cfoo.something(123, 'str')

操场

是否可以按照既定的顺序在其余参数中定义几种类型?

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Alexander Lonberg
Asked: 2022-05-14 00:14:37 +0000 UTC

如何使 TypeScript 正确验证表达式?

  • 1

简单的例子:

const isString = (any: any): boolean => (typeof any === 'string')

function something(foo: string | number): string {
  const value = isString(foo) ? foo : Number.prototype.toFixed.call(foo)
  // ... какие-то действия
  return value
}

在第一行之后,在函数内部,错误立即发光。TypeScript 无法正确处理带有自定义isString(foo)常量的字符串value,它将其视为string | number.

在此处输入图像描述

如果您typeof像这样明确使用和编写...

function something(foo: string | number): string {
  const value = typeof foo === 'string' ? foo : Number.prototype.toFixed.call(foo)
  return value
}

...然后const value: string分别没有错误。

强制安装,如...

/** @type {string} */
const value = ...

……也无济于事。

我找不到任何可以修复此行为的配置设置。

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Alexander Lonberg
Asked: 2020-10-24 02:37:02 +0000 UTC

Node/JS 模块导入、require/import、module/commonjs

  • 2

我正在尝试导入模块。

渴望:使用require并且import不考虑模块类型(module_es6/commonjs)而无需额外的库。

在此处输入图像描述

在目录中(图片)demo-*- 导出
在目录中import-as-*- 导入目录中的内容demo-*

模块*-commonjs以样式描述module.exports/require
模块以样式*-module描述export/import
示例:

// "type": "commonjs"
module.exports = () => {
    return "i commonjs"
}
// "type": "module"
export default () => {
    return "i module"
}

每个package.json都有一个相应的属性"type": "module/commonjs"
。例如:

{
    "name": "demo-module",
    "main": "./index.js",
    "type": "module"
}

Node(-v v12.13.0) 以标志开头--experimental-modules和--es-module-specifier-resolution=node

从import-as-module一切导入都很好,包括模块demo-commonjs。
这里 fromimport-as-commonjs不会从require('../demo-module')任何东西导入。

Error [ERR_REQUIRE_ESM]:  
Must use import to load ES Module: ...path.../demo-module/index.js

如何达到预期的效果?

下面是一个不可能的片段!!!

// + ПРИМЕРЫ ЭКСПОРТА

// demo-commonjs | package.json->{name, main,"type": "commonjs"}
module.exports = () => {
    return "i commonjs"
}

// demo-module | package.json->"type": "module"
const CONST_MOD = 'CONST_MOD'
export { CONST_MOD }
export default () => {
    return "i module"
}


// + ПРИМЕРЫ ИМПОРТА

// import-as-module | package.json->"type": "module"
import CommonJS from '../demo-commonjs'
console.log(CommonJS())
import def, { CONST_MOD } from '../demo-module'
console.log(def())
console.log(CONST_MOD)

// import-as-commonjs | package.json->"type": "commonjs"
const CommonJS = require('../demo-commonjs')
console.log(CommonJS())
// ЗДЕСЬ ПОЛУЧАЮ ОШИБКУ
try {
    var CONST_MOD = require('../demo-module')
}
catch (error) {
    console.error(error) // Must use import to load ES Module:
}
console.log(CONST_MOD) // undefined

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Alexander Lonberg
Asked: 2020-03-02 04:17:58 +0000 UTC

替换 URL 中的双斜杠

  • 1

假设我有这个网址:

ptc-serv://regex101.com//path//post?p="z//"

...到底?p="z//"

如何替换 JS 中的双斜杠(用一个/)而不影响?and之后的字符#,因此,protocol 之后的前两个http://。

示例https://regex101.com/r/vnRU0Z/1

在此处输入图像描述

UPD - 我会纠正这个问题。它需要留下:

ptc-serv://regex101.com/path/post?p="z//"
javascript
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5