duck-typing

    4热度

    4回答

    我搜索了一段时间,我找不到一个确定的和一般的答案,只有一些矛盾和特殊的意见。 [1] 所以我想知道鸭子打字和泛型编程之间有什么关系? (DT < GP,DT == GP,DT> GP)。通过泛型编程,我特别提到了C++模板或Java泛型,但是如果可能的话,与概念相关的一般答案会受到欢迎。 我知道泛型编程将在编译时处理,而duck输入将在运行时处理,但我不知道如何定位它们。 最后,我不想开始辩论,所

    4热度

    2回答

    我正在学习Python和numpy,并且对鸭打字的想法很陌生。我正在编写函数,其中/某人应该传递一个numpy数组。试图接受鸭子打字,我写我的代码使用numpy.array与copy=和ndmin=选项将array_likes或1d/0d数组转换成我需要的形状。具体来说,我使用ndmin=选项的情况下,我可以接受(p,p)阵列或标量;标量可以被编码为int,(1,)数组,数组(1,1),[1]列表

    1热度

    4回答

    我遇到了一个scipy函数,它似乎无论传递给它什么都返回一个numpy数组。在我的应用程序中,我只需要能够传递标量和列表,所以唯一的“问题”是当我将一个标量传递给函数时,返回一个包含一个元素的数组(当我期望标量时)。我应该忽略这种行为,还是破解函数以确保当标量被传递时标量被返回? 示例代码: #! /usr/bin/env python import scipy import scipy.o

    2热度

    3回答

    我有一些代码,我想通过实例或类交替传递。我将在该代码中执行的所有操作都是调用我期望类和实例都具有的方法(以下示例中的方法为go())。 不幸的是,我无法用常规方法的相同名称创建classmethod ...请参阅下面的示例。我最初预计第二次电话会产生一个a而不是一个b。 有关如何实现此目的的任何建议? Type "help", "copyright", "credits" or "license"

    2热度

    2回答

    考虑下面的代码: public enum Pet { Cat, Dog } public interface IOwner { Pet Pet { get; set; } } public class Owner : IOwner { public Pet Pet { get

    1热度

    3回答

    所有“纯”功能语言都是强类型的。那些之间有任何联系吗?

    0热度

    3回答

    有没有一种方法可以要求模板类型具有属性? 例如: template <typename T, typename U> void foo() { U a,b; bool truthiness = T()(a,b); if (truthiness) // do something } 那么,如何将要求T已在operator()(U a, U b)定义

    2热度

    4回答

    当==(等号)运算符用于比较不同类型时,是否有方法获取异常?尝试排序不同类型的对象时,Python 3会引发异常。但==仍然返回False。 还有其他一些方法可以避免难以发现错误类型假设导致的错误吗?有什么设计模式可以帮助吗? 我在想,例如,某人使用某人的情况下,即使该属性基本上是一个数字,它仍会始终返回一个字符串,而不会执行xmlparser.get()。

    1热度

    2回答

    也许我的设计完全没有重击,但如果我有2派生类对象是可比较的,但类D1基本上总是> D2类。 (说比较常春藤桥到286)。我如何实施D1类比较来反映不使用isinstance(D2)? 我看到这一点: Comparing two objects 和 If duck-typing in Python, should you test isinstance? 我可以添加一个“类型”属性,然后比较类型,但

    5热度

    1回答

    在the manual是说: in general, __lt__() and __eq__() are sufficient, if you want the conventional meanings of the comparison operators 但我看到的错误: > assert 2 < three E TypeError: unorderable types: int()