如何将setter属性作为参数传递给函数?

时间:2017-10-20 22:30:26

标签: python function properties

我正在尝试将setter属性作为参数传递给函数。 我的班级有以下属性。

matplotlib.pyplot

我可以将getter作为参数传递给函数,如下所示:

@property
def drawMode(self):
    return self._drawMode

@drawMode.setter
def drawMode(self, value):
    self._drawMode = value

传递setter的语法是什么?

2 个答案:

答案 0 :(得分:0)

如果将属性的名称传递给函数(以及对象本身),则可以执行类似的操作。这允许从对象的类中检索属性对象。获得后,可以直接调用const z = _.uniqBy(_.filter(data.map(e=>e.a), v => _.filter(data.map(e=>e.a), v1 => v1 === v).length > 1)) const dupes = data.filter(itm => z.includes(itm.a)) const flat = _.flatMap(dupes, item => _(item.type) .map(v => ({b: v.b})) .value() )

def find_starman(board):
    row_number = 0
    column_number = 0

for star in board:
        for j in range(len(board):
           for i in range(len(board):
               if star[j][i] == '*':
                    j += 1
                    i += 1
     return [j,i]   

答案 1 :(得分:0)

您可以直接传递属性对象,并避免使用魔术字符串。您仍然需要传递实例:

class Class:
    def __init__( self ):
        self.__value = "old value"


    @property
    def value( self ):
        return self.__value


    @value.setter
    def value( self, value ):
        self.__value = value


def function( instance, property_ ):
    print( property_.fget( instance ) )
    property_.fset( instance, "new value" )
    print( property_.fget( instance ) )


instance = Class()
function( instance, Class.value )

输出:

old value
new value