【自学python】 问关于JAVA当中无参数构造方法,在python当中是否有对应的方法?

python代码如下:

# -*- coding:gb2312 -*-
class Dog:
    def __init__(self,name,sex):
        self.name = name
        self.sex = sex
    
    def __str__(self):
        return ("狗的名字是%s,狗的性别是%s"%(self.name,self.sex))
        

#dog = Dog("AAA","BBB")
dog = Dog()
print(dog)

显示结果如图:

clipboard.png

这个原因很简单,系统的意思就是说,在创建dog这个实例的时候,必须输入name和sex两个参数,结果我没有输入,所以程序崩溃。
而我最近在看JAVA的代码当中,JAVA在创建类的过程当中,可以同时写两个构造方法,一个带有参数,一个不带参数。
也就是说,当你输入的参数跟预先设定的不一样的时候,系统会自动调用不带参数的那个构造方法,这个好像称之为重载(请原谅我没有学过JAVA,我只是知道个大概,大概应该是这个意思)。

而我的问题是:
在python当中,是否也有跟JAVA这个特性一样的东西?也就是说,在上面这段python的代码中,我是否也可以做到,不输入属性,或者输入的属性跟预先设定的完全不一样的情况下,系统依然正常运行?那么我应该怎么写呢? 不知道我的表述是否清楚。

阅读 2.6k
1 个回答
class Dog:
    def __init__(self,name='Wang',sex='M'):
        self.name = name
        self.sex = sex
    
    def __str__(self):
        return ("狗的名字是%s,狗的性别是%s"%(self.name,self.sex))
        

#dog = Dog("AAA","BBB")
dog = Dog()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题