我正在定义一个方法
def foo_my_class(my_class: ???, bar: str) -> None:
""" Operate on my_class """
Run Code Online (Sandbox Code Playgroud)
我想知道,如何使用类型提示功能来指定应该在第一个参数中传递的类。
基本上,我应该放什么而不是在???那里做标记?
这里还有一些代码,可以更具体地说明我要实现的目标。
class Base(object):
"""base class"""
class X(Base):
"""some class"""
class Y(Base):
"""some other class"""
foo_my_class(X, "foo")
foo_my_class(Y, "bar")
Run Code Online (Sandbox Code Playgroud) 我刚刚开始学习单元测试并遇到了这个问题。
\n\n我得到这样的项目结构(现在是 it\xe2\x80\x99s Django 1.6.2):
\n\n./manage.py\n./myproject\n./myproject/urls.py\n./myproject/myapp/\n./myproject/myapp/urls.py\n./myproject/myapp/views.py\n./tests/\n./test/test_example.py\nRun Code Online (Sandbox Code Playgroud)\n\n在 ./myproject/urls.py 我有:
\n\nfrom django.conf.urls import patterns, include, url\nurlpatterns = patterns('',\n url(r'^myapp/', include('myproject.myapp.urls')),\n)\nRun Code Online (Sandbox Code Playgroud)\n\n在 ./myproject/myapp/urls.py 我有:
\n\nfrom django.conf.urls import patterns, url\n\nurlpatterns = patterns('myproject.myapp.views',\n url(r'^example1/$', 'itemlist'), \n url(r'^example1/(?P<item_id>\\w+)/$', 'item'),\n)\nRun Code Online (Sandbox Code Playgroud)\n\n我编写了基本测试并将其放入./test/test_example.py
\n\nimport unittest\nfrom django.test import Client\n\nclass PagesTestCase(unittest.TestCase): \n def setUp(self):\n self.client = Client()\n\n def test_itemlist(self): \n response = self.client.get('/myapp/example1/')\n self.assertEqual(response.status_code, 200)\n\n def test_item(self): \n response = self.client.get('/myapp/example1/100100/')\n self.assertEqual(response.status_code, 200)\nRun Code Online (Sandbox Code Playgroud)\n\n我从 shell 运行这个测试,如下所示:
\n\ncd ./tests\npython manage.py test\n …Run Code Online (Sandbox Code Playgroud)