python基础学习5-面向对象
- 类
创建 class 类名 (): # 类名首字母大写,()可写可不写
pass
- 对象
对象名 = 类名()
- 类的组成
class Student:
school ='北京xx学校' # 类属性,定义在类中方法外的变量
# 初始方法
def __init__ (self,xm,age):
self.name = xm # 左侧是实例属性,右侧是局部变量,实例属性名跟局部变量名可以一样
self.age = age
# 定义在类中的函数成为实例方法,自带参数self
def show(self):
print(self.name)
print(self.age)
# 静态方法
@staticmethod
def sm():
print() # 这是一个静态方法,不能调用实例属性,也不能调用实例方法
@classmethod
def cm(cls):
print() # 这是一个类的方法,不能调用实例属性,也不能调用实例方法
- 动态绑定属性名和方法
class Student:
school ='北京xx学校'
def __init__ (self,xm,age):
self.name = xm
self.age = age
def show(self):
prinf()
stu = Student('韩梅梅',18)
stu.gender = '女'
def introduce():
print()
stu.fun = introduce
- 面向对象的三大特征: 封装、继承、多态
- 无下划线为普通的,可供内部外部本身,子类使用,单下划线 受保护的,只供本身和子类使用,双下划线开头,私有成员,只允许本身使用,首位双下划线,供特殊使用,如__init__
- dir(对象名) 返回对象所有属性方法
- 在类里面使用@property 修改方法转化成属性使用
- 在类里面使用@f方法名称.setter 修改属性
- 类的继承
class 类名(父类1,父类2.。。父类n):
pass
- object类
__new__() 系统创建对象自动执行
__init__()
__str__() 返回对象的内存地址描述信息
- 继承多个父类,调用__base__时显示继承的第一个类
- 类的深拷贝和浅拷贝
深拷贝:使用copy的deepcopy函数,递归拷贝对象中包含的子对象,源对象和拷贝对象所有的子对象都不相同 copy.deepcopy()
浅拷贝:拷贝时,对象包含的子对象不拷贝,因此,源对象和拷贝对象会引用同一个子对象 copy.copy()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)