文章内容:
1、实例方法与self,self的意义
2、如何在实例方法中访问实例变量与类变量
3、构造函数和实例方法的实例变量调用方式,类变量的调用方式
#实例方法与self
#self的意义:self只和对象有关,和类是没有关系的,代表的是实例不是类
class Student():
name='xia'
age=0
def __init__(this,name,age):#self可以用其它的比如this替换
this.name=name
this.age=age
def do_homework(self):
print('homework')
student1=Student('小红帽',9)
print(student1.__dict__)#{'name': '小红帽', 'age': 9},student1下所有的实例变量
#在实例方法中访问实例变量与类变量
#实例方法主要是描述类的行为,构造函数数关键的意义在于初始化
#在实例方法中访问实例变量
class Student():
sum1=0
def __init__(self,name,age):#构造函数可以看做是实例方法,只是他们的调用方式不一样
self.name=name
self.age=age
print(self.name)#操作实例变量
print(name)#也可以访问实例变量,但建议访问实例变量加self
#self.name和name打印结果形同,但是改变一下形参就不一样了
def do_homework(self):#实例方法
print('homework')
student1=Student('小红帽',9)
student1.do_homework
#改变一下形参name
class Student():
sum1=0
def __init__(self,name1,age):
self.name=name1
self.age=age
print(self.name)
print(self.__dict__)#{'name': '小红帽', 'age': 9}
print(name)#这个读取的是形参name,NameError: name 'name' is not defined
def do_homework(self):
print('homework')
student1=Student('小红帽',9)
#在实例方法中访问类变量
class Student():
sum1=0
def __init__(self,name,age):
self.name=name
self.age=age
print(Student.sum1)#0
print(self.__class__.sum1)#0
print(sum1)#NameError: name 'sum1' is not defined
def do_homework(self):
print('homework')
student1=Student('小红帽',9)
#构造函数和实例方法的实例变量调用方式,类变量的调用方式
class Student():
sum1=0#类变量
def __init__(self,name,age):#构造函数
self.name=name
self.age=age
def do_homework(self):#实例方法
print('homework')
student1=Student('小红帽',9)
print(student1.name)#小红帽
student1.do_homework()#homework
Student.sum1#0