当使用 python 的unittest subtest时,我对参数在子测试中的命名和范围感到困惑。
上面链接中给出的规范示例似乎暗示子句中使用的参数with self.subtest()可以作为关键字参数传递给subTest(). 作为参考,所示示例如下:
class NumbersTest(unittest.TestCase):
def test_even(self):
"""
Test that numbers between 0 and 5 are all even.
"""
for i in range(0, 6):
with self.subTest(i=i):
self.assertEqual(i % 2, 0)
Run Code Online (Sandbox Code Playgroud)
它使用了一种不明确的约定,将内部作用域变量命名为与参数 ( i=i) 相同的名称。我认为这意味着关键字参数名称被视为内部作用域变量名称。然而,当我尝试创建自己的测试时,我发现如果关键字参数的命名与用作参数输入的外部作用域变量的命名不完全相同,PyCharm 和 python 解释器都会抱怨未解析的引用。
IE:
class NumbersTest(unittest.TestCase):
def test_even(self):
"""
Test that numbers between 0 and 5 are all even.
"""
for i in range(0, 6):
with self.subTest(num=i): # <-- Renamed keyword argument parameter
self.assertEqual(num % 2, …Run Code Online (Sandbox Code Playgroud) 我正在尝试发布一个应用程序,该应用程序将使用移动广告来产生收入。
当我尝试注册 AdMob 时,它告诉我必须拥有一个 AdSense 帐户。
当我去注册 AdSense 时,它告诉我必须有一个网站。
我没有网站。我有一个应用程序。
但是 Adsense 坚持说我有一个。一些有用的帖子表明,如果我使用谷歌创建博客,那么我可以将其用作我的“网站”。我在sites.google.com和blogger上都这样做了。如果我尝试使用其中任何一个来注册 AdSense,它会告诉我必须分别通过“sites.google.com”或“www.blogger.com”直接注册 Adsense。
“sites.google.com”显然不再支持新的 AdSense 帐户,因此我放弃了该途径。Blogger 确实支持它,但是当我转到“启用收入”时,它告诉我我的博客不符合条件。它没有给我一个理由,但很可能是因为我的“博客”没有内容。
我不想写博客,我想发布一个APP!!
所以我的问题是:1)是否有可能获得谷歌移动广告(是的,我想使用谷歌,以便它与 firebase 等很好地集成)。没有网站?2)如果(1)是否定的,那么我如何快速轻松地让谷歌满意我的博客/网站/任何足以保证 Adsense 帐户的合法性?
这很容易成为启动这个应用程序最令人沮丧的部分,其中包括在我的代码中寻找错误。
抱歉,如果这是题外话,如果有更好的论坛,请指点我。
初始化实例变量时,我喜欢包含类型提示。然而,有时我还没有准备好为其分配任何特定值,我希望它以“无”开始。
self._active_cal_fluid: MyObject = None
Run Code Online (Sandbox Code Playgroud)
这导致 PyCharm 给我一个检查错误:
Expected type 'MyObject', got 'None' instead
我无法创建 的“空”版本,MyObject()因为这在我的上下文中没有意义。如果我稍后在其他方法中初始化它,它会抱怨我在init () 之外初始化实例变量,并且类型提示不起作用。
我更愿意启用类型提示。我一般不想禁用此检查,我只想仅当对象初始化为“无”时才消除此特定警告。PyCharm 中可能有这样的事情吗?