我正在尝试使用另一个更通用的类方法来定义一些类方法,如下所示:
class RGB(object):
def __init__(self, red, blue, green):
super(RGB, self).__init__()
self._red = red
self._blue = blue
self._green = green
def _color(self, type):
return getattr(self, type)
red = functools.partial(_color, type='_red')
blue = functools.partial(_color, type='_blue')
green = functools.partial(_color, type='_green')
但是,当我尝试调用其中任何一种方法时,都会得到:
rgb = RGB(100, 192, 240)
print rgb.red()
TypeError: _color() takes exactly 2 arguments (1 given)
我想_color
自rgb.red(rgb)
工作以来,自我并没有传递给自己。
您正在 函数 上创建局部 函数
,而不是方法上。functools.partial()
对象不是描述符,它们本身不会添加self
参数,也不能自己充当方法。您 只能
包装绑定的方法或函数,它们对于未绑定的方法根本不起作用。这是记录:
partial
对象就像function
对象一样,它们是可调用的,弱引用的,并且可以具有属性。有一些重要的区别。例如,__name__
和__doc__
属性不会自动创建。同样,partial
在类中定义的对象的行为类似于静态方法,并且在实例属性查找期间不会转换为绑定方法。
使用property
s代替;这些 是 描述符:
class RGB(object):
def __init__(self, red, blue, green):
super(RGB, self).__init__()
self._red = red
self._blue = blue
self._green = green
def _color(self, type):
return getattr(self, type)
@property
def red(self): return self._color('_red')
@property
def blue(self): return self._color('_blue')
@property
def green(self): return self._color('_green')
从Python
3.4开始,您可以在此处使用新functools.partialmethod()
对象。绑定到实例时,它将做正确的事情:
class RGB(object):
def __init__(self, red, blue, green):
super(RGB, self).__init__()
self._red = red
self._blue = blue
self._green = green
def _color(self, type):
return getattr(self, type)
red = functools.partialmethod(_color, type='_red')
blue = functools.partialmethod(_color, type='_blue')
green = functools.partialmethod(_color, type='_green')
但是这些property
对象必须被调用,而对象可以用作简单属性。
问题内容: 这是代码段: 之后遇到错误: 所有其他方法都可以正常工作。试图进行大量研究但徒劳无功。任何线索将不胜感激 问题答案: 这表明Spark版本不匹配。在Spark 2.3 方法之前,仅接受两个参数: 从2.3开始,它需要三个参数: 在您的情况下,Python客户端似乎调用了后者,而JVM后端使用了较旧的版本。 由于初始化在2.4中进行了重大更改,这将导致上的失败,因此您可能使用: 2.3.
本文向大家介绍Java中通过Class类获取Class对象的方法详解,包括了Java中通过Class类获取Class对象的方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍的是关于Java通过Class类获取Class对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 阅读API的Class类得知,Class 没有公共构造方法。Class 对象是
本文向大家介绍Python class的继承方法代码实例,包括了Python class的继承方法代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Python class的继承方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 运行结果: 还可以写成: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支
本文向大家介绍python3.6使用pickle序列化class的方法,包括了python3.6使用pickle序列化class的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python3.6使用pickle序列化class的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍JavaScript实现获取dom中class的方法,包括了JavaScript实现获取dom中class的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript实现获取dom中class的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的javascript程序设计有所帮助。
本文向大家介绍startup class的configure方法有什么作用?相关面试题,主要包含被问及startup class的configure方法有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 这个方法来定义整个应用如何响应HTTP请求。它有几个比较重要的参数,application builder,Hosting environment, logo factory, 在这里我们可以