Python中文
首页
教程
问答
标签
搜索
登录
注册
如何向类的用户解释它的一个属性的预期类型?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在用Python开发一个类,其中一个属性应该表示一个神经网络。我希望这个属性实际上是另一个类的实例,我们称它为<code>NN</code>,有几个方法(比如<code>train()</code>用于训练,<code>predict()</code>用于预测,等等)。此外,我认为初始化这个属性的一个合理方法是使用类的构造函数,该构造函数期望<code>NN</code>类的实例作为其参数之一。你知道吗</p> <p>如何解决这个问题的第一个想法是实现一个接口,然后对用户提供给我的类构造函数的内容进行类型检查,以确保它来自预期的<code>NN</code>类。然而,在Python中,接口(<a href="https://stackoverflow.com/a/2124415/2055373">1</a>)和类型检查(<a href="https://stackoverflow.com/a/734910/2055373">2</a>,<a href="https://stackoverflow.com/a/41305217/2055373">3</a>,<a href="https://stackoverflow.com/a/1950420/2055373">4</a>,<a href="https://stackoverflow.com/a/154156/2055373">5</a>)似乎都不是好的实践。你知道吗</p> <p>相反,我们应该使用<a href="https://en.wikipedia.org/wiki/Duck_typing" rel="nofollow noreferrer">Duck typing</a>,并简单地尝试使用objects方法,直到无法使用为止(即,将类型检查推迟到运行时)。但是,在我的例子中,<code>NN</code>类可能非常复杂,有几个方法和属性。如果我真的放弃了接口的想法,仅仅期望我的类的用户提供一个对象所有必要的方法和属性,他/她怎么知道这个对象的期望值是什么?我应该在类docstring、构造函数docstring或其他地方编写所有这些信息吗?还是有更好的方法来解决这个问题?你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>从python3.5开始,您可以使用<a href="https://www.python.org/dev/peps/pep-0484/" rel="nofollow noreferrer">type hints</a>。这将向用户记录所需的类型,并启用可选的脱机类型检查。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
使用登录请求.post导致“错误405不允许”
3 回答
使用登录进行Python web抓取
9 回答
使用登录进行抓取
9 回答
使用登录页面从网站抓取数据
7 回答
使用白色圆圈背景使图像更平滑
10 回答
使用百分位数删除Pandas数据帧中的异常值
3 回答
使用百分号进行Python字典操作
2 回答
使用百分比delimi的Python字符串模板
10 回答
使用百分比分割Numpy ndarray最有效的方法是什么?
8 回答
使用百分比分配和修改变量(计算)
5 回答
使用百分比单位绘制数据
9 回答
使用百分比在单个采购订单中组合不同的订单类型
9 回答
使用百分比将数据帧的子集与完整数据帧进行比较
10 回答
使用百分比形式的BBOX选项,而不是绝对像素PyScreenShot Python
8 回答
使用百分比登录列nam更新表
9 回答
使用百分比登录操作系统或者os.popen公司
10 回答
使用百分比计算:十进制还是可读?
1 回答
使用的dataset和dataloader加载数据时出错torch.utils.data公司. TypeError:类型为“type”的对象没有len()
8 回答
使用的Json无效json.dump文件在Python3
10 回答
使用的overwrite方法\r在python 3[PyCharm]中不起作用
7 回答