python-面向对象基础
一.类名:满足大驼峰命名法
备注大驼峰命名法:1.每个单词首字母大写 2.单词与单词之间没有下划线
二.dir 内置函数
——方法名——格式的方法是python提供的内置方法/属性
self:哪一个对象调用的方法,self就是那个对象的引用。类似于java中的this
——init——:专门用来定义一个类具有哪些属性,一般使用参数设置属性初始值
class Cat:
def __init__(self, name):
self.name = name
——del——:当一个对象被从内存中销毁时,会自动调用该方法
应用场景:如果希望在对象被销毁前,再做一些事情,可以考虑一下该方法
——str——:如果在开发中,希望使用print输出对象变量时,能够打印自定义的内容,就可以使用该方法 (java中的toString方法)
注意:——str——方法必须返回一个字符串
定义没有初始值的属性:
在定义属性时,如果不知道设置什么初始值,可以设置为None
- None关键字表示什么都没有
- 可以表示一个空对象,没有属性和方法,是一个特殊的常量
- 可以将None赋值给任何一个变量
身份运算符:
is: 判断引用地址和值相等
is not:相反
is 与 == 的区别
is判断引用地址和值是否相等
== 判断值是否相等
可以使用is来判断None
方法的重写:
1.覆盖父类方法,在子类中定义一个和父类同名的方法并实现
2.对父类方法进行扩展
- 如果在开发中,子类的方法实现中包含父类的方法实现就可以使用扩展的方式
- 在子类中重写父类的方法
- 在需要的位置使用super().父类方法来调用父类方法的执行
- 在代码其他的位置针对子类的需求,编写子类特有的代码实现
关于super:
在python中super是一个特殊的类
super()就是使用super类创建出来的对象
最常使用的场景就是在重写父类方法时,调用在父类中封装的方法实现
私有属性和方法:
——属性
——方法
在继承中,子类对象不能直接访问父类私有属性和方法
但可以通过父类方法间接访问
继承:可以单继承和多继承
多态:
类属性:
定义:可以用=赋值完成
访问类属性有两种方式:
1.类名.类属性
2.对象.类属性(不推荐)
注意:如果使用 对象.类属性 = 赋值语句,只会给实例对象添加一个属性,而不会影响到类属性的值
类方法:
语法:
@classmethod
def 类方法名(cls):
pass
两点要注意:
1.要加@classmethod装饰器
2.类方法的第一的参数要是cls
通过类名.类方法调用,不需要传递cls参数
在类的内部
- 可以通过cls.类属性,访问类属性
- 也可以通过cls.方法,调用其他的类方法
静态方法:
- 既不需要访问实例属性或者调用实例方法
- 也不需要访问类属性或者调用类方法
这个时候,可以把这个方法封装成一个静态方法
语法:
@staticmethod
def 静态方法名():
pass
通过类名.静态方法名 来调用