ps. Мне также нужно преобразовать строковые значения в объект datetime, например «2024-10-10», и это причина использования параметра формата. Пожалуйста, дайте мне знать, как это сделать
`
Параметр класса {
private:
std::string name;
nb::object value;
Код: Выделить всё
[[nodiscard]] nb::object _get_value( const nb::dict& source, const bool& required, const nb::type_object& type_, const nb::object& default_, const std::string& format ) const {
if (required and !source.contains(name.c_str()))
throw std::domain_error("Parameter " + name + " is required");
return convert(source.contains(name.c_str()) ? source[name.c_str()] : default_, type_, format);
}
[[nodiscard]] static nb::object convert(const nb::object& value, const nb::type_object& type_, const std::string& format) {
if (value.is_none())
return value;
if (type_.is_none())
return value;
return value;
}
Parameter( std::string name_, const nb::dict& source, const nb::type_object& type_, const bool& требуется = false, const nb::object& default_ = nb::none(), const std::string& format = "", const nb::object& check = nb::none() ) : name(std::move(name_)) {
value = get_value(источник, обязательный, тип, default_, формат);
if (!check.is_none())
check(value);
Код: Выделить всё
[[nodiscard]] nb::object getValue() const {
return value;
}
[[nodiscard]] std::string getName() const {
return name;
}
`
Я собираюсь передать этот параметр и использовать его для приведения значения, найденного в исходном коде. (поправьте меня за что-то кроме основного вопроса, я только сейчас изучаю, как работает привязка cpp)
Подробнее здесь: https://stackoverflow.com/questions/786 ... or-casting