①、类:各个种类,如电子类、家具类、服饰类、食品类……;
②、实例:类的个例就叫做实例 (instance),可理解为“实际的例子”。
①、类的创建:class+类名+冒号
②、类的属性创建:通过赋值语句
③、实例方法的创建:def + 方法名(self)(重点:self 代表着实例化对象)
如下例子:
①、第 5 行 “t=teacher()” 指实例化类 teacher ,其中 t 为实例化对象(即 self = t );
②、第 6 行 “print(t.name)” 指调用了实例化对象的属性 name;
③、第 7 行 “t.work()” 指调用了实例化对象的方法 work。
self 是所有实例的替身(这是替身攻击!!!)
①、类的方法内部调用其他方法时,我们也需要用到 self 来代表实例
上面代码执行后,终端输出的结果为 <__main__.A object at 0x000001B29C851080> ,即我们的 self 代表着类 A 的实例化对象 a。
②、类中用 def 创建方法时,就必须把第一个参数位置留给 self,并在调用方法时忽略它(不用给self传参)
③、类的方法内部想调用类属性或其他方法时,就要采用 self.属性名 或 self.方法名 的格式
①、格式定义:def __init__(self),是由 init 加左右两边的【双】下划线组成
②、作用:当每个实例对象创建时,该方法内的代码无须调用就会自动运行
以上初始化函数无需调用,一实例化直接运行。
③、利用这个特性,在编写习惯上,我们会在初始化方法内部完成类属性的创建,为类属性设置初始值,这样类中的其他方法就能直接、随时调用
①、题目:下面的代码中,为什么函数A内的函数B执行后,再在第 4 行中定义呢?
解析:上方代码中,我们的顺序是定义函数 A,定义函数 B,定义函数 main,最后再来执行我们的 函数 main ,而在定义的期间是不执行函数的。
②、self 函数的调用
以上代码中,从第 6 行开始讲解,我们实例化了类 A 并创建实例对象 a ,给实例化对象 a 创建了属性 name 并赋值 ‘延君’。我们调用类中的 Name 方法后,便打印出了我么的语句。
③、初始化方法 __init__ 函数
以上代码中,我们实例化了类 A 并赋予了值 ‘延君’,因为实例化了,所以初始化函数 init 默认执行,并把 ‘延君’ 给实例化对象 a 的属性 name,从而我们调用方法 Day 时正常输出 “今天是延君催课的第三天了” 。
这里 self.name=name 要注意的是,self.name 是实例化对象的 name,而后者是函数中的参数 name ,两者定位不同。即我们可以写为 self.mingzi = name,则我们调用时也需要写为 self.mingzi。
④、__str__函数(知识拓展)
在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做“魔法”方法,其中 __str__方法需要返回一个字符串,当做这个对象的描写,也是实例化后便执行的方法。
5、小练习
创建一个名为Cat的类,其方法_init_()设置两个属性:Cat_name,Cat_age,为了赋予每只猫蹲下能力,创建一个名为sit()方法;赋予每只猫奔跑能力,另外创建一个名为run()方法;前后两者都打印出前述两项属性和目前的状态
联系客服