9-4 构造函数
9-5 区别模块变量与类中的变量
9-6 类变量与实例变量
本节重点:什么是实例化?实例化的意义!
class Student():
name = ''
age = 0
def do_homework(self):
print('homework')
# print('name:' + self.name)
# print('age:' + str(self.age))
student1 = Student()
student2 = Student() #这三个所代表的特征是相同的。但是在计算机中是不同的,如图1
student3 = Student()
print(id(student1))
print(id(student2))
print(id(student3))
#如何让这3个对象在实例化以后不相同呢?函数中通过传递参数的形式实现的,那么这里也可以通过
# 向类传递不同的参数来生成不同的对象
class Student():
name = ''
age = 0
def __init__(self): #构造函数
#初始化对象的属性
print('student')
def do_homework(self):
print('homework')
# print('name:' + self.name)
# print('age:' + str(self.age))
student1 = Student() #不能在这里传递参数,这是不正确的!
student1.__init__() #打印结果如图2,会出现两个student,为什么呢?因为构造函数是自动调用的
#student2 = Student() #这三个所代表的特征是相同的。但是在计算机中是不同的,如图1
#student3 = Student()
class Student():
name = ''
age = 0
def __init__(self):
print('student')
def do_homework(self):
print('homework')
student1 = Student()
a = student1.__init__() #构造函数也是可以调用的,如图3!但是却不能用于return
print(a)
print(type(a))
class Student():
name = ''
age = 0
def __init__(self,name,age): #在这里传入两个参数
#构造函数
#初始化对象的属性
#区分类变量(和类相关的)和实例变量(和对象相关联在一起的)!!!
name = name #第一个name是类中的变量name,第二个name是参数中的name
age = age
#print('student')
def do_homework(self):
print('homework')
student1 = Student('石敢当',18) #上面的参数有了,这里必须要传入参数,不然报错
print(student1.name)#通过 . 来访问的
#打印结果如图4,是一个空的,那么构造函数里的name,如何改变类里的变量name呢?
# 看下面的例子
class Student():
name = '小鱼'
age = 0
def __init__(self,name,age):
#构造函数
#初始化对象的属性
#区分类变量(和类相关的)和实例变量(和对象相关联在一起的)!!!
self.name = name #通过self.的形式就构建了与类变量不同的实例变量
self.age = age
#print('student')
def do_homework(self):
print('homework')
student1 = Student('石敢当',18)
student2 = Student('喜小乐',18)
print(student1.name) #打印实例的name
print(student2.name)
print(Student.name) #打印类的name
#如图5所示





网友评论