python 无参构造函数
时间: 2023-12-11 22:33:51 浏览: 58
在Python中,如果我们没有在类中定义构造函数,系统会自动提供一个无参的构造函数。这个构造函数不需要我们手动调用,当我们创建对象时,系统会自动调用这个构造函数。下面是一个例子:
```python
class MyClass:
def __init__(self):
print("构造函数被执行了")
# 创建对象
obj = MyClass() # 输出:构造函数被执行了
```
如果我们在类中定义了构造函数,那么系统就不会再提供无参的构造函数了。如果我们在创建对象时没有传递参数,就会出现TypeError的错误。下面是一个例子:
```python
class MyClass:
def __init__(self, a):
print("构造函数被执行了")
# 创建对象
obj = MyClass() # 报错:TypeError: __init__() missing 1 required positional argument: 'a'
```
相关问题
python无参和有参构造函数
Python中的构造函数分为无参构造函数和有参构造函数。
无参构造函数是指在创建对象时不需要传递任何参数,它的定义形式为:
```python
def __init__(self):
# 构造函数的代码逻辑
```
无参构造函数一般用于在创建对象时进行一些初始化操作,比如给对象的成员变量赋初值。
有参构造函数是指在创建对象时需要传递参数,它的定义形式为:
```python
def __init__(self, 参数1, 参数2, ...):
# 构造函数的代码逻辑
```
有参构造函数可以接收多个参数,用来在创建对象时初始化对象的成员变量。通过传递不同的参数值,可以方便地创建不同属性值的对象。
使用无参构造函数创建对象的示例:
```python
class Student:
def __init__(self):
self.name = ""
self.age = 0
# 创建Student对象
s = Student()
s.name = "Tom"
s.age = 18
print(s.name, s.age) # 输出 Tom 18
```
使用有参构造函数创建对象的示例:
```python
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
# 创建Student对象
s = Student("Tom", 18)
print(s.name, s.age) # 输出 Tom 18
```
通过以上示例可以看出,无参构造函数在创建对象后还需要分别给成员变量赋值,而有参构造函数在创建对象时就可以直接给成员变量赋初值,方便快捷。
完成无参构造函数,要求nS,nM,nH都是0
好的,以下是完成无参构造函数的代码:
```python
class C知道:
def __init__(self):
self.nS = 0
self.nM = 0
self.nH = 0
```
这样就完成了无参构造函数,nS,nM,nH都被初始化为0。