Python init和Objects

时间:2011-03-24 18:44:20

标签: python

我有这个问题。我不知道是否有任何捷径,但我会喜欢捷径。

说我有这个班级

class a(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __repr__(self):
        return "<a(%s', '%s')>" % (self.x, self.y)

    def b(self):
        print('First Name:', self.x, '\nLast Name:', self.y)


user = a('Ade', 'Shola')

假设只有名字,

user = a('Ade')

我不能用一些'调整'来运行脚本吗?

2 个答案:

答案 0 :(得分:5)

只需为最后一个参数设置一个空的默认值:

def __init__(self, x, y=None):

您需要在很多逻辑中检查y is None

答案 1 :(得分:1)

您也可以尝试这样设置您想要的任何字段的值...

>>> class a(object):
    def __init__(self, x=None, y=None):
        self.x = x
        self.y = y

    def __repr__(self):
        return "[a(%s', '%s')]" % (self.x, self.y)

    def b(self):
        print('First Name:', self.x, '\nLast Name:', self.y)

>>> user=a('nsn')
>>> user
[a (nsn', 'None')[
>>> user=a(x='xyx')
>>> user
[a(xyx', 'None')]
>>> user=a(y='abc')
>>> user
[a(None', 'abc')]
>>>