duck-typing

    1热度

    1回答

    我在XSL中创建了一个接受XML元素作为参数的函数。我对这个XML元素有一定的期望:例如,它必须有一个<name>子元素和一个<id>子元素。因此,无论从以下两个元素是可以接受的: <person> <id>1234</id> <age>16</age> <address><city>NYC</city><state>NY</state></address>

    6热度

    2回答

    在记录一个Python函数,我觉得更Python说: def Foo(i): """i: An interable containing…""" ...不是... def Foo(i): """i: A list of …""" 当i真的不需要成为一个list。 (Foo将愉快地运行在set,tuple等)问题是发电机。生成器通常只允许1次迭代。 大多数函数都可以使用只

    0热度

    1回答

    我在写一个自定义的类来包装字典。因此,我想为它实现getitem。我也将在这个词典中使用元组作为键。然而,当我尝试传递一个元组来getitem时,Python会抛出一个KeyError。它看起来像它的铸造我的元组为int,当我把它传递给的GetItem: 代码: Class Board(object): def __getitem__(self, key): print "ty

    7热度

    3回答

    鉴于我有一个IEnumerable<T>,其中T是任何对象,我怎么能从它中选择一个特定的属性,因为我知道在运行时的一个属性名称的名称作为一个字符串? 例如: var externalIEnumerable = DataPassedFromConsumingCode(); // `IEnumerable<T>` string knownPropertyName = "Foo"; var foo

    6热度

    3回答

    我昨天问了very similar question,但它不是直到今天我才意识到我接受不解决我的所有问题的答案。我有以下代码: public Expression<Func<TItem, object>> SelectExpression<TItem>(string fieldName) { var param = Expression.Parameter(typeof(TItem),

    2热度

    1回答

    我如何能延长我有我使用的是使用了鸭子类型类型: type t={ def x:Int ... } class t2 { def x:Int=1 } def myt:t=new t2 //ducktyping 我想写被迫接口类型特征,但这并不工作: trait c extends t { //interface DOES NOT COMPILE def x:Int

    21热度

    5回答

    由于Ruby中没有类型,Ruby程序员如何确保函数接收正确的参数?现在,我正在重复执行if object.kind_of/instance_of语句来检查并随处增加运行时错误,这很丑陋。必须有更好的方式来做到这一点。

    14热度

    3回答

    您有一个需要进行等值测试的Python类。 Python应该使用duck-typing,但是它是(更好还是更准确)在eq函数中包含或排除isinstance测试?例如: class Trout(object): def __init__(self, value): self.value = value def __eq__(self, other):

    7热度

    3回答

    在my open-source plain C code我使用这个简单的结构来读出并从字符串缓冲区中解析数据: typedef struct lts_LoadState { const unsigned char * pos; size_t unread; } lts_LoadState; 该缓冲区由this simple API访问: /* Initialize bu

    1热度

    3回答

    的鸭打字友好的方式,我有这样的功能: def foo(bar): ... 现在bar可以是一个Django的记录或指向一个记录蛞蝓。我需要这种灵活性,以便可以在手头有实际记录时调用此函数,或者从只有字符串可用的字符串(从数据库中提取)的更通用的函数中调用此函数。 我知道我可以这样做: def foo(bar): try: bar.pk except A