Questions tagged «type-hinting»

类型提示将函数参数绑定到特定对象或对其进行强类型化。


2
定义type.Dict和dict之间的区别?
我正在练习在Python 3.5中使用类型提示。我的一位同事使用typing.Dict: import typing def change_bandwidths(new_bandwidths: typing.Dict, user_id: int, user_name: str) -> bool: print(new_bandwidths, user_id, user_name) return False def my_change_bandwidths(new_bandwidths: dict, user_id: int, user_name: str) ->bool: print(new_bandwidths, user_id, user_name) return True def main(): my_id, my_name = 23, "Tiras" simple_dict = {"Hello": "Moon"} change_bandwidths(simple_dict, my_id, my_name) new_dict = {"new": "energy source"} …

1
用户定义类的类型提示
似乎找不到确切的答案。我想为一个函数提供类型提示,该类型是我定义的一些自定义类,称为它CustomClass()。 然后让我们说在某个函数中调用它FuncA(arg),我有一个名为的参数arg。键入提示的正确方法FuncA是: def FuncA(arg: CustomClass): 或者是: def FuncA(Arg:Type[CustomClass]):?

4
如何在for循环中注释类型
我想在for-loop中注释变量的类型。我尝试了这个: for i: int in range(5): pass 但这显然没有用。 我期望在PyCharm 2016.3.2中能够自动完成工作。像这样的预注释: i: int for i in range(5): pass 没有帮助。 适用于PyCharm> = 2017.1的PS预注释作品

1
如何在PHP类型提示中捕获“可捕获的致命错误”?
我正在尝试在我的一个课程中实现PHP5的类型提示, class ClassA { public function method_a (ClassB $b) {} } class ClassB {} class ClassWrong{} 正确用法: $a = new ClassA; $a->method_a(new ClassB); 产生错误: $a = new ClassA; $a->method_a(new ClassWrong); 可捕获的致命错误:传递给ClassA :: method_a()的参数1必须是ClassB的实例,给定ClassWrong的实例... 是否有可能捕获到该错误(因为它说“可捕获”)?如果是的话,如何?

5
PHP 7接口,返回类型提示和自我
更新:PHP 7.4现在确实支持协方差和逆方差,这解决了此问题中提出的主要问题。 我在PHP 7中使用返回类型提示遇到了一些问题。我的理解是,提示: self意味着您打算让实现类返回自身。因此,我: self在接口中使用它来表明这一点,但是当我尝试实际实现接口时,出现兼容性错误。 以下是我遇到的问题的简单演示: interface iFoo { public function bar (string $baz) : self; } class Foo implements iFoo { public function bar (string $baz) : self { echo $baz . PHP_EOL; return $this; } } (new Foo ()) -> bar ("Fred") -> bar ("Wilma") -> bar …

2
我应该如何使用Optional类型提示?
我试图了解如何使用Optional类型提示。从PEP-484,我知道我可以使用Optional的def test(a: int = None)无论是作为def test(a: Union[int, None])或def test(a: Optional[int])。 但是下面的例子呢? def test(a : dict = None): #print(a) ==> {'a': 1234} #or #print(a) ==> None def test(a : list = None): #print(a) ==> [1,2,3,4, 'a', 'b'] #or #print(a) ==> None 如果Optional[type]似乎与表示相同的意思Union[type, None],我为什么要Optional[]全部使用?

2
什么是Python 3.6中的变量注释?
Python 3.6即将发布。PEP 494-Python 3.6发布时间表提到了12月底,所以我仔细研究了Python 3.6的新增功能,看看他们提到了变量注释: PEP 484引入了功能参数的类型注释(也称为类型提示)的标准。该PEP向Python添加了语法,以注释变量的类型,包括类变量和实例变量: primes: List[int] = [] captain: str # Note: no initial value! class Starship: stats: Dict[str, int] = {} 就像函数注释一样,Python解释器不会在变量注释中附加任何特殊含义,而仅将它们存储在__annotations__类或模块的特殊属性中。与静态类型语言中的变量声明相反,注释语法的目的是提供一种通过抽象语法树和__annotations__属性为第三方工具和库指定结构化类型元数据的简便方法。 因此,根据我的阅读,它们是来自Python 3.5的类型提示的一部分,如Python 3.5中的类型提示中所述。 我遵循captain: str和class Starship示例,但不确定最后一个示例:如何primes: List[int] = []解释?它是否定义了一个只允许整数的空列表?

2
JetBrains WebIDE:PHP变量类型提示?
有没有办法提示WebIDE变量具有某种类型?我必须迭代对象的数组,并且没有自动完成功能。这有助于ZendStudio: /* @var ClassName $object */ 我知道JetBrains中有一个功能来声明对象数组: /** * @return ClassName[] */ 但这仅适用于函数的返回类型。



7
PHP 7中的类型提示-对象数组
也许我错过了一些东西,但是是否有任何选择来定义该函数应该具有参数或返回用户对象数组的示例? 考虑以下代码: <?php class User { protected $name; protected $age; /** * User constructor. * * @param $name */ public function __construct(string $name, int $age) { $this->name = $name; $this->age = $age; } /** * @return mixed */ public function getName() : string { return $this->name; } public function getAge() …

8
PHP类型提示到原始值?
我想知道是否有人可以提示一种方法来期望原始类型? 像这样: public function someMethod(string $str) //^^^^^^ 要么: private function anotherMethod(int $num) //^^^ 用同样的方式: private function otherMethod(Person $rambo) //^^^^^^ 这可能在php中吗?

8
如何在Django QuerySet中使用Python类型提示?
是否可以使用Python类型提示在Django QuerySet中指定记录类型?像QuerySet[SomeModel]什么? 例如,我们有模型: class SomeModel(models.Model): smth = models.IntegerField() 而且我们想将该模型的QuerySet作为参数传递给func: def somefunc(rows: QuerySet): pass 但是如何在QuerySet中指定记录类型,例如List[SomeModel]: def somefunc(rows: List[SomeModel]): pass 但是使用QuerySet?

2
“ with”语句是否支持类型提示?
您可以为使用with语法定义的变量定义类型提示吗? with example() as x: print(x) 我想在上面键入提示以说这x是一个str(作为示例)。 我发现的唯一解决方法是使用中间变量,但这感觉很hack。 with example() as x: y: str = x print(y) 我在打字文档中找不到示例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.