我想这是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)
我怎么能通过A
或B
基于它的父母?
我的意思是这样的:
def foo_func(obj: foo_class_type) -> None:
pass
foo_func(A())
foo_func(B())
Run Code Online (Sandbox Code Playgroud) 我对 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
是我想避免的奇怪的事情,所以我不知道如何解决这个问题。