学习D10

类 2.0

类的调用
class Dog():
	def bark(self):
		print(123)
	
	def show(self):
		self.bark()

在类的外部调用方法 ----> 通过创建实例

dog = Dog()
dog.bark()

在类的内部调用方法 ------> 通过self.方法名 调用

self 就是自己的这个类的地址

Dog().show()
临时属性的添加
实例名.临时属性名 
dog.name = 'asd'

注意点,
实例属性和临时属性的区别
	实例属性是通过当前类创建的实例对象,都具有的
	临时属性 是一个实例具有的 其他实例对象可有可无
	
	在写web的时候,可能会为了方便起见加的
	
	
	
init 和 new 方法

​ new方法创建和返回实例对象

​ init初始化实例

​ new 方法先执行

魔法方法

__ str __

在调用实例对象时会自动调用这个方法,并返回一个字符串

	def __str__(self):
		return '字符串'

return必须有

实例属性的更改

在类的外部修改实例属性

class Dog():
	def __init__(self,leg):
		self.leg = leg 
	def show(self):
		print(self.leg)

dog = Dog(4)
dog.leg = 5
dog.show()

在类的内部修改实例属性

class Dog():
	def __init__(self,leg):
		self.leg = leg 
	def change_leg(self,newleg):
		self.leg = newleg
	def show(self):
		print(self.leg)

dog = Dog(4)
dog.leg = 5
dog.show()
dog.change_leg(6)
dog.show()

继承

继承中子类,子类继承父类的方法与属性

class A():
	def __init__(self):
		self.name = 'AA'

class B(A):
	Pass
	

b = B()
print(b.name)
输出:
AA

子类的方法重写了父类的方法 (就是子类有和父类同名的方法 或属性)

class A():
	def __init__(self):
		self.name = 'AA'

class B(A):
	def __init__(self):
		self.name ='BB'
	

b = B()
print(b.name)
输出:
BB
多继承
class A():
    def __init__(self):
        self.name = 'aa'

class B():
    def __init__(self):
        self.name = 'bb'

class C(B,A):

    def show(self):
        print(self.name)
c = C()
c.show()
输出:
bb


A--->C<----B

若有同样的名字的方法则根据 先继承哪个就打印哪个

多层继承
A

|

|

B

|

|

C

继承的结构不同,但是用起来和多继承差不多 ,若是继承多了影响性能

查找顺序

多继承的查找顺序与继承的类的位置有关

class C(B,A):

def show(self):
    print(self.name)
    
    
print(C.__mro__)
输出
继承类的顺序
继承权限:私有属性与私有方法

私有属性:

class A():
	def __init__(self):
		self.__money = 111111
		
		
		
在属性名前加__  变成私有属性
变成私有属性后 不能被子类调用,也不能被自己的实例所调用,只能在自己的类的内部被调用


私有方法:

class A():
	def __init__(self):
		self.money = 111111
	
	def __show(self):
		print(self.money)
		
		
与私有属性一样 加__ 变私有方法

强行获取私有属性:

print(实例名._类名__属性)

class A():
	def __init__(self):
		self.__money = 111111
	
a = A()
print(a._A__money)
输出:
111111
重写与调用父类的方法

重写: 只要 方法名一样 就行

调用:

class A():
    def aa(self):
        print('aa')

class B(A):
    def aa(self):
    	super(A,self).name()
    	或
    	A.name(self)
        self.name = 'bb'
采用PyQt5框架与Python编程语言构建图书信息管理平台 本项目基于Python编程环境,结合PyQt5图形界面开发库,设计实现了一套完整的图书信息管理解决方案。该系统主要面向图书馆、书店等机构的日常运营需求,通过模块化设计实现了图书信息的标准化管理流程。 系统架构采用典型的三层设计模式,包含数据存储层、业务逻辑层和用户界面层。数据持久化方案支持SQLite轻量级数据库与MySQL企业级数据库的双重配置选项,通过统一的数据库操作接口实现数据存取隔离。在数据建模方面,设计了包含图书基本信息、读者档案、借阅记录等核心数据实体,各实体间通过主外键约束建立关联关系。 核心功能模块包含六大子系统: 1. 图书编目管理:支持国际标准书号、中国图书馆分类法等专业元数据的规范化著录,提供批量导入与单条录入两种数据采集方式 2. 库存动态监控:实时追踪在架数量、借出状态、预约队列等流通指标,设置库存预警阈值自动提醒补货 3. 读者服务管理:建立完整的读者信用评价体系,记录借阅历史与违规行为,实施差异化借阅权限管理 4. 流通业务处理:涵盖借书登记、归还处理、续借申请、逾期计算等标准业务流程,支持射频识别技术设备集成 5. 统计报表生成:按日/月/年周期自动生成流通统计、热门图书排行、读者活跃度等多维度分析图表 6. 系统维护配置:提供用户权限分级管理、数据备份恢复、操作日志审计等管理功能 在技术实现层面,界面设计遵循Material Design设计规范,采用QSS样式表实现视觉定制化。通过信号槽机制实现前后端数据双向绑定,运用多线程处理技术保障界面响应流畅度。数据验证机制包含前端格式校验与后端业务规则双重保障,关键操作均设有二次确认流程。 该系统适用于中小型图书管理场景,通过可扩展的插件架构支持功能模块的灵活组合。开发过程中特别注重代码的可维护性,采用面向对象编程范式实现高内聚低耦合的组件设计,为后续功能迭代奠定技术基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值