1.对于类的函数有绑定类函数和非绑定类函数
self在对象的方法中表示当前对象本身,如果通过对象调用一个方法,那么该对象会自动传入到当前方法
的第一个参数中
self并不是关键字,只是一个用于接受对象的普通参数,理论上可以用任何一个普通变量名代替
方法中有self形参的方法成为非绑定类的方法,可以通过对象访问, 没有self的是绑定类的方法,
只能通过类访问
使用类访问绑定类的方法时, 如果类方法中需要访问当前类的成员,可以通过 __class__成员名来访问
2.类属性和对象属性是由区别的,对于一个类属性,他不是在函数里面定义的,他在类里面,函数外面定义的,改变它的方法有两个,第一个:普通成员函数里面使用__class__.(这里填写雷属性)=(这里填写赋的新值)第二个是:写一个类函数,比普通函数在前面多一个@classmathod,注意类函数他的第一个参数是cls,可以通过类名或者是对象名来调用
给上一段代码
class fun(): name='luojianyi' def say(self): __class__.name='xiaoyihao'#这个是在普通函数类绑定函数或者是 def asyagain(): print("kdhfldsh") @classmethod def change(cls): print("djfksfa") a=fun() fun.asyagain() a.change() fun.change()
3.对于查看类或者是对象的属性可以使用__dict__
a=fun() print(a.__dict__) print(fun.__dict__)
这样打印的出来的是字典,采用键值对的方式告诉你,这个类或者是对象里面有什莫
4.类的继承
class Person(): def sleep(self): print("我要睡觉了") class Teacher(): def sleep(self): print("在睡觉之前我还要比改作业") #子类在重写父类哈那束的时候也是可以调用父类函数的 Person.sleep(self)#这样可以调用父类函数,单数要把当前这个对象传给父类函数 #就是子类对象可以冒充父类,但是父类不可以冒充子类 #打一个比喻就是,人可以冒充动物,但是党务不能冒充人 t=Teacher() t.sleep()
5.关于super的用法
class Person(): def sleep(self): print("我要睡觉了") def do(self): print("我会做好多事情") class Teacher(Person): def sleep(self): print("在睡觉之前我还要比改作业") #子类在重写父类哈那束的时候也是可以调用父类函数的 Person.sleep(self)#这样可以调用父类函数,单数要把当前这个对象传给父类函数 #就是子类对象可以冒充父类,但是父类不可以冒充子类 #打一个比喻就是,人可以冒充动物,但是党务不能冒充人 super().sleep()#这样也可以调用父类,推荐使用这一种,这种调用方法,他会自己将对象传入父类 class old_teacher(Person): def __init__(self): super().do()#对于super的用法不只是追溯到自己的父类,弗雷德父类也可以 t=Teacher() t.sleep() t1=old_teacher()
super不是关键字,他是一个类,你可以打印他的类型。
6.介绍一下pycharm中使用的小技巧
1.多行注释和取消多行注释 按住Ctrl键和问号键就可以
2、pycharm使多行代码同时缩进
鼠标选中多行代码后,按下Tab键,一次缩进四个字符
3、pycharm使多行代码同时左移
鼠标选中多行代码后,同时按住shift+Tab键,一次左移四个字符