小编HuL*_*iCa的帖子

ReactNative AsyncStorage 返回奇怪的值

我有以下 React Native 模块:

_localStorage.js

import AsyncStorage from '@react-native-community/async-storage';

const _storeData = async (key, value) => {
  try {
    await AsyncStorage.setItem(key, value);
  } catch (error) {
    console.log(error);
  }
}

const _retrieveData = async (key) => {
  try {
    await AsyncStorage.getItem(key);
  } catch (error) {
    console.log(error);
  }
}

export {_storeData, _retrieveData};
Run Code Online (Sandbox Code Playgroud)

应用头文件

import React from 'react';
import {Button} from 'react-native-paper';
import {_retrieveData, _storeData} from '../../utils/_localStorage'

const LoginButton = () => {
  return (
    <Button icon='login' color='yellow' onPress={() => navigation.navigate('Login')}>
      Login
    </Button> …
Run Code Online (Sandbox Code Playgroud)

react-native asyncstorage

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

重写方法签名时如何避免违反里氏替换原则

我有一个DataWriter定义抽象方法的抽象类write()。该类应该是一组动态具体类的基类,其中每个类都旨在实现其自己的方法版本write()。为了定义meta方法参数的数据类型,我创建了WriterMetawrite()类型,如下所示:

WriterMeta = typing.Union[GSheetWritable, S3Writable, LocalWritable]

每个具体类将负责处理符合联合的不同类型之一,但 linter mypy似乎没有掌握这一点,因为当我write()使用其中一种类型定义具体类的方法的签名时参数的联合meta,它标记了 a Liskov substituion principle violation,我认为它不存在,因为具体类是抽象类的子集,这意味着父类可以毫无问题地替换子类。

这是我的代码:

class LocalWritable(typing.TypedDict):
    file_name: str


class GSheetWritable(typing.TypedDict):
    tab_name: str


class S3Writable(typing.TypedDict):
    data_name: str
    table_name: str


WriterMeta = typing.Union[GSheetWritable, S3Writable, LocalWritable]

class GSheetOutputWriter(DataWriter):
    def __init__(
        self, google_driver: GoogleApiDriver, folder: str, settings, timestamp, env
    ):
        self._connector = google_driver
        self.folder = folder
        self.settings = settings
        self.timestamp = timestamp
        self.env = env
        self.file_name …
Run Code Online (Sandbox Code Playgroud)

python abstract-class liskov-substitution-principle python-3.x mypy

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

在 Mac 上安装 Odoo 会引发 gevent 错误

我按照本教程在 Mac 上安装 Odoo 15,但在运行时遇到此错误pip install -r requirements.txt

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
      cdef load_traceback
      cdef Waiter
      cdef wait
      cdef iwait
      cdef reraise
      cpdef GEVENT_CONFIG
            ^
      ------------------------------------------------------------
      
      src/gevent/_gevent_cgreenlet.pxd:181:6: Variables cannot be declared with 'cpdef'. Use 'cdef' instead.
Run Code Online (Sandbox Code Playgroud)

我发现了几个解决 cython 错误的文档,但没有一个文档解决我遇到的特定异常。

python cython odoo

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

Django Rest Framework会覆盖viewset list()方法,而不会失去filter_backends功能

我有一个视图集,并且我重写了list()方法,但是按字段进行的过滤停止工作。如何从代码中调用过滤选项:

这是我的观点:

 class SupplementViewSet(viewsets.ModelViewSet):
    permission_classes = (permissions.IsAuthenticated,)
    queryset = models.Product.objects.filter()
    serializer_class = serializers.SuplementSerializer
    filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter,)
    search_fields = ('hotel', 'name')
    filter_fields = ('id', 'hotel', 'name')

    def perform_create(self, instance):
        instance.save(product_type=models.Product.SUPPLEMENT)

    def list(self, request, pk=None):
        if pk == None:
            supplements = models.Product.objects.filter(product_type=models.Product.SUPPLEMENT)
        else:
            supplements =  models.Product.objects.get(product_type=models.Product.SUPPLEMENT, id=pk)

        page = self.paginate_queryset(supplements)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)

        serializer = self.get_serializer(page, many=True)
        result_set = serializer.data

        return Response(result_set)

    def get_result_set(self, supplements):
        result_set = serializers.ProductSerializer(supplements, many=True).data

        return …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

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

如何根据条件选择 React 组件 props

我有以下 React 组件:

<SweetAlert 
    show={this.props.message} 
    success 
    title={this.props.message}
    onConfirm={this.props.handleCloseAlert}>
</SweetAlert>
Run Code Online (Sandbox Code Playgroud)

这是我收到的警报:

在此输入图像描述

success但我希望在执行时动态选择道具,所以我尝试了以下方法:

 const alertType = () => {
    switch(this.props.type) {
        case ALERT_ERROR:
          return 'error'
        case ALERT_WARNING:
          return 'warning'
        case ALERT_DANGER:
          return 'danger'
        case ALERT_INFO:
          return 'info'
        case ALERT_SUCCESS:
          return 'success'
      }
    }

<SweetAlert 
    show={this.props.message} 
    {...alertType()}
    title={this.props.message}
    onConfirm={this.props.handleCloseAlert}>
</SweetAlert>
Run Code Online (Sandbox Code Playgroud)

但我失去了它的警报类型:

在此输入图像描述

我还没有找到向组件添加任意道具的方法。

javascript reactjs material-ui

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

如何在Python中引用实例变量

我在类的init()方法中定义了一个实例变量,并从中派生了一个新类.当我尝试从辅助类的实例引用此变量时,它似乎没有被继承.

这是代码:

company=Company()
person=Person()
task=Task()

print(company.get_attrs())

class Entity(Persistent):
    list_of_attrs=[]
    list_of_attrs_flag=False

    def __init__(self):
        attributes={}
        attributes_edition_flag={}
        if not type(self).list_of_attrs_flag:
            type(self).list_of_attrs=self.get_attrs_from_persistent()
            type(self).list_of_attrs_flag=True
            for attr in type(self).list_of_attrs:
                attributes[attr]=''
                attributes_edition_flag[attr]='false'

    def get_attrs(self):
        return(self.attributes)

class Company(Entity):
    def hello(self):
        print('hello')
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

MacBook-Pro-de-Hugo:Attractora hvillalobos$ virtual/bin/python3 control.py
Traceback (most recent call last):
  File "control.py", line 7, in <module>
    print(company.get_attrs())
  File "/Users/hvillalobos/Dropbox/Code/Attractora/model.py", line 48, in get_attrs
    return(self.attributes)
AttributeError: 'Company' object has no attribute 'attributes'
Run Code Online (Sandbox Code Playgroud)

它工作但我移动了一些东西(我猜),但我找不到什么.谢谢你的帮助

python oop inheritance

0
推荐指数
1
解决办法
54
查看次数

argparse 接受随机参数

我有一个 Python 应用程序,它argparse使用声明的一组参数来实现:

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--arg1",
        default="dev",
        choices=["real", "test", "dev"],
        help="arg 1"
    )
    parser.add_argument("--arg2", default="0", help="arg 2")
    parser.add_argument(
        "--arg3",
        nargs="+",
        default=["one", "two"],
        choices=["one", "two"],
        help="arg 3",
    )
    parser.add_argument("--arg4", action="store_true", help="arg 4")
    parser.add_argument("--arg5", action="store_true", help="arg 5")
    parser.add_argument("--arg6", action="store_true", help="arg 6")
    parser.add_argument("--arg7", default=None, help="arg 7")

    args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

如果我发送这些声明中未定义的参数,则会出现以下异常:

error: unrecognized arguments: arg8 value
Run Code Online (Sandbox Code Playgroud)

是否可以指示argparse接受未声明的参数?

python argparse

0
推荐指数
1
解决办法
55
查看次数