好吧,不考虑有关这是否是一个好主意的任何讨论,我将选择选项3,因为它是最一致的:它始终表明该函数已被属性的存在修饰,并访问了该属性的值。属性总是返回一个函数,因此您不必针对进行测试
None。
但是,您还应该考虑这一点:您打算对手工装饰做什么?例如
def test(first): passtest = d(test)
关于问题的第一部分,我没有看过太多的Python解释器源代码,因此无法向您指出任何特别有用的东西。

好吧,不考虑有关这是否是一个好主意的任何讨论,我将选择选项3,因为它是最一致的:它始终表明该函数已被属性的存在修饰,并访问了该属性的值。属性总是返回一个函数,因此您不必针对进行测试
None。
但是,您还应该考虑这一点:您打算对手工装饰做什么?例如
def test(first): passtest = d(test)
关于问题的第一部分,我没有看过太多的Python解释器源代码,因此无法向您指出任何特别有用的东西。