美文网首页
pytthon入门与进阶(9-4 9-5 9-6)

pytthon入门与进阶(9-4 9-5 9-6)

作者: buaishengqi | 来源:发表于2018-05-03 11:00 被阅读10次

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所示
01.jpg 02.jpg 03.jpg 04.jpg 05.jpg

相关文章

网友评论

      本文标题:pytthon入门与进阶(9-4 9-5 9-6)

      本文链接:https://www.haomeiwen.com/subject/rsqkrftx.html