如何在python中处理属性?

如何在python中处理属性?,python,arguments,Python,Arguments,我必须创建一个函数printObjects(属性,选项),它必须基于某个属性打印对象。该属性可以采用整数或字符串作为输入。选项属性是可选的。我该如何为我的类实现这一点?我假设您想要这样的东西,或者它至少会有帮助: def printObject(obj, attributes=()): for a in attributes: print getattr(obj, a) def打印对象(对象,属性=()): 对于属性中的属性: 打印getattr(对象,a) “选项属性是可选的”什

我必须创建一个函数printObjects(属性,选项),它必须基于某个属性打印对象。该属性可以采用整数或字符串作为输入。选项属性是可选的。我该如何为我的类实现这一点?

我假设您想要这样的东西,或者它至少会有帮助:

def printObject(obj, attributes=()): for a in attributes: print getattr(obj, a) def打印对象(对象,属性=()): 对于属性中的属性: 打印getattr(对象,a)
“选项属性是可选的”什么?!?!我希望这意味着printObjects的第二个参数“option”不是强制性的。否则,我会对选项/属性的不同用法感到非常困惑。假设你的意思是我所希望的,你的选择是什么?它默认是什么?基于某个属性打印对象这意味着什么-|永远不要使用可变参数作为默认参数。(除非你真的知道它是如何工作的,并且想要这种行为;而且,在这个例子中,它不会导致任何错误,但最好指出这一点)看,在这种情况下,它很好,“属性”没有写入。这是正确的方法。谢谢很抱歉我在最初的问题中含糊不清,但这家伙明白了我的意思:)@delnan,你是对的,可变参数是危险的。这是为了使代码易于阅读,但我可以使用元组来实现同样的目的effect@Trim:如果此答案对您正确,则接受它(使用答案左侧的勾号)。