Python初始化和对象

2 投票
2 回答
699 浏览
提问于 2025-04-16 14:21

我遇到了一些问题。我不知道有没有什么快捷方式,但我希望能有一个。

假设我有这样一个类

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 个回答

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')]
>>> 
5

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

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

在很多逻辑中,你需要检查一下 y 是否为 None

撰写回答