创建一个Custom类,其中包含实例属性name,由构造函数进行初始化,还包含一个名为count的类属性,用于统计用户数目(创建实例数)。利用继承创建一个Vcustom类,它还包含一个实例属性i。两者都包含一个sayHello方法用于输出信息。
时间: 2023-07-16 11:15:01 浏览: 80
可以按照以下方式创建Custom类和Vcustom类:
```python
class Custom:
count = 0 # 类属性,用于统计用户数目
def __init__(self, name):
self.name = name
Custom.count += 1 # 每次创建实例时,类属性count加1
def sayHello(self):
print("Hello, I'm", self.name)
class Vcustom(Custom):
def __init__(self, name, i):
super().__init__(name) # 调用父类的构造函数初始化name属性
self.i = i # 初始化子类的实例属性i
def sayHello(self):
print("Hello, I'm", self.name, ", and my i is", self.i)
```
在上述代码中,我们定义了一个Custom类,并在其中包含了一个实例属性name和一个类属性count。构造函数`__init__()`用于初始化name属性,并在创建实例时自动将类属性count加1。同时,我们还定义了一个sayHello方法,用于输出信息。
在Vcustom类中,我们继承了Custom类并添加了一个实例属性i。构造函数`__init__()`中,我们使用`super().__init__(name)`来调用父类的构造函数初始化name属性,然后再初始化子类的实例属性i。同时,我们重写了sayHello方法,在输出信息时同时输出实例属性i的值。
下面是一些示例代码,演示如何使用上述两个类:
```python
user1 = Custom('Alice')
user2 = Custom('Bob')
print('Total users:', Custom.count) # 输出用户数目
user1.sayHello()
user2.sayHello()
vuser1 = Vcustom('Charlie', 1)
vuser2 = Vcustom('David', 2)
print('Total users:', Vcustom.count) # 输出用户数目
vuser1.sayHello()
vuser2.sayHello()
```
输出结果为:
```
Total users: 2
Hello, I'm Alice
Hello, I'm Bob
Total users: 2
Hello, I'm Charlie , and my i is 1
Hello, I'm David , and my i is 2
```