小编Ser*_*sta的帖子

Python - 如何传递给类对象的函数参数类型(打字)

我想这是python 3.7(不确定)附带的,不仅可以将变量名传递给函数,还可以传递变量的类型。我想知道的是是否有可能传递特定类的类型。

你可以通过同样的方式:

def foo_func(i: int) -> None:
    pass
Run Code Online (Sandbox Code Playgroud)

如果我有一堂课,让我们说:

class foo_class(object):
    pass
Run Code Online (Sandbox Code Playgroud)

我怎样才能将 转换foo_func为接收foo_class而不是int类型?

此外,如果 foo_class 是另一个类的继承,我可以从父类中强加一个更通用的类型吗?例如,如果我有,

class A(foo_class):
     pass

class B(foo_class):
     pass
Run Code Online (Sandbox Code Playgroud)

我怎么能通过AB基于它的父母?

我的意思是这样的:

def foo_func(obj: foo_class_type) -> None:
    pass

foo_func(A())
foo_func(B())
Run Code Online (Sandbox Code Playgroud)

types arguments class function python-3.7

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

为什么“类型参数从不使用”,即使它在 where 子句中使用?

我对 Rust 很陌生,我一直遇到这个问题,我不知道如何解决它。我有一个类似的结构,

pub struct Solver <'e, E: 'e, T, M, C>
    where
        E: Equation<T, M, C>,
        T: Term<C>,
        M: Mesh,
{
    equations: &'e [E],
}
Run Code Online (Sandbox Code Playgroud)

这总是给我这个错误,

pub struct Solver <'e, E: 'e, T, M, C>
    where
        E: Equation<T, M, C>,
        T: Term<C>,
        M: Mesh,
{
    equations: &'e [E],
}
Run Code Online (Sandbox Code Playgroud)

我知道它T从未被使用过,但是,例如,我无法定义方程式T(或者我可以吗?)。有没有更短的版本可以写?这PhantomData是我想避免的奇怪的事情,所以我不知道如何解决这个问题。

generics rust

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

标签 统计

arguments ×1

class ×1

function ×1

generics ×1

python-3.7 ×1

rust ×1

types ×1