当前位置: 首页 > news >正文

python基础(类、实例、属性、方法)

1. 类、实例

类创建的实体叫对象

# 语法
class ClassName(object):# 具体内容def __init__(self): # self代表实例化对象print(“这是一个初始化函数”)
# 实例化
cl = ClassNmae()

1. 实例的属性

class ClassName(object):# 具体内容def __init__(self): # self代表实例化对象self.name = nameself.age = agecl = ClassName()
print(cl.__dict__) # 查看所有的属性

2. 实例的方法

# 实例的方法,就是类中的函数

3. 类属性

class Name:name = X

4. 类方法

# 对于所有的实例做处理
@classmathod
def get_name(cls):pass

5. 静态方法

@staticmethod
def isvalid(**kwargs):# 对实例传入的参数做校验

2. 面向对象的特点

1. 继承

# 子类可以继承父类的东西
class Name(父类):def __init__(self,xx):super().__init__(xx)self.time = time # 子类重写属性def again(self):#重写父类的方法

2. 多态

同一个方法,可以处理不同的数据

len(str)

len(list)

3. 封装

变量的声明

单_声明变量不要随意调用

双__变量私有化,外面不能调用,只能在类里面自己调用

# 封装调用函数
# 在外部将函数当成变量使用
@property
def func():pass#变量的修改器
def age():return self.__age
@age.setter
def age(self.age):self.__age = age
class Player:def __init__(self,name,age):self.name = nameself.age = age@propertydef xm(self):return self.name@xm.setterdef xm(self,change_name):self.name = change_name

4. 魔法方法

# __init__魔法函数

5. 闭包

ef wrapper(fn):def inner(*args,**kargs):print("函数执行之前执行")fn(*args,**kargs)print("函数执行后执行")return inner
@wrapper
def func2(name,pwd):print(f"账户{name},密码{pwd}")
func2('Jack',7432)

简单项目

'''
学生班级老师课程'''# 信息基类
class User:def __init__(self,name,sex,age,id_number):self.name = nameself.sex = sexself.age = ageself.id_number = id_numberdef show_infos(self):print(f"{26 *'*'}\n姓名:{self.name}\n性别:{self.sex}\n年龄:{self.age}\n学(工)号:{self.id_number}")class Student(User):# 属性:姓名、性别、年龄、学号def __init__(self,name,sex,age,id_number,curse):super().__init__(name,sex,age,id_number)self.curse = curse# 查看信息def show_infos(self):super().show_infos()print("已选课程:%s" %self.curse)# 添加课程def add_curse(self,curse):if curse:self.curse.append(curse)else:print("课程不能为空")class Teacher(User):# 属性:姓名、年龄、性别、工号、是否是导员、班级列表def __init__(self,name,sex,age,id_number,dao,cla):super().__init__(name,sex,age,id_number)self.dao = daoself.cla = cladef show_infos(self):super().show_infos()print(f"是否是导师:{self.dao}")if self.cla:for i in self.cla:print(i,end=" ")else:raise Exception("不存在班级信息")print()class Cla:# 属性:班级名称、班级号、辅导员、学生def __init__(self,name,id_number,teacher,student):self.name = nameself.id_number = id_numberself.teacher = teacherself.student = student# 查看班级信息def show_infos(self):print(f"{10 * '*'}班级信息{10 * '*'}\n班级:{self.name}\n班号:{self.id_number}")print(f"老师姓名:{self.teacher.name}")print("学生信息:",end="")if self.student:for i in self.student:print(i.name,end=' ')else:print("班级不存在学生信息")print()# 添加学生信息def add_student(self,student):if student in self.student:print(f"班级存在{student.name}学生信息,不需要添加")else:self.student.append(student)# 删除学生信息def del_student(self,student):if student not in self.student:print(f"班级不存在{student.name}信息,无需删除")else:self.student.remove(student)class Curse:curses = []# 属性:课名、课程id、老师、学生列表、课程性质、课程容量def __init__(self,name,id_number,teacher,student,must,numbers):self.name = nameself.id_number = id_numberself.teacher = teacherself.student = studentself.must = mustself.numbers = numbersCurse.curses.append(self.name)for i in self.student:i.add_curse(self.name)def show_infos(self):print(f"{10 * '*'}课程信息{10 * '*'}\n课程名字:{self.name}\n课程id:{self.id_number}\n课程老师:{self.teacher.name}\n",end="")print("学生信息:",end="")if self.student:for i in self.student:print(i.name,end=" ")else:print("学生信息为空")print()print("课程属性:%s" %self.must)print("可选人数:%d" % self.numbers)# 已选人数students = len(self.student)# 剩余可选人数chose = self.numbers - studentsprint("课程已选:%d 人" %students)print("课程剩余:%d" %chose)# 课程新增学生def add_student(self,student):if student not in self.student:self.student.append(student)self.student.add_curse(self.name)else:print(f"课程已经添加学生{student.name}")# 课程删除学生def sub_student(self,student):if student in self.student:self.student.remove(student)else:print(f"学生{student.name}未选择课程{self.name}")# 课程列表@classmethoddef curses_info(self):return Curse.curses# 学生tom
tom = Student('Tom','男',18,1159,[])
# 学生jack
jack = Student('Jack','男',28,1160,[])# 老师jarry
jarry = Teacher('Jarry','男',32,10010,True,["计算机一班","计算机三班","计算机五班"])
# 老师mia
mia = Teacher("Mia",'女',18,10011,False,["计算机二班"])# 班级1
computer_cla1 = Cla("计算机三班",10086,jarry,[tom])
# 班级2
computer_cla2 = Cla("计算机二班",10087,mia,[jack])# python课程
python = Curse("python课程",150,jarry,[tom],"必修",10)
java = Curse("java课程",151,jarry,[tom,jack],"必修",5)
tom.show_infos()
# java课程

http://www.mrgr.cn/news/61053.html

相关文章:

  • 音频翻译怎么操作?亲测实用的4个转换工具,推荐收藏
  • Python字典到JSON字符串的转换
  • 常用方法:枚举类型
  • golang包导入注意事项
  • 山峰为您的设备选择合适的油封
  • IDEA使用正则批量替换(理论上JetBrains全家桶都适用)
  • 基础IO -- 简单封装库(文件操作)
  • CRM客户关系管理系统:全方位提升销售效能的利器
  • 「后人类视角下的哲学思考:技术与人性的新边界」
  • 【modbus协议】libmodbus库移植基于linux平台
  • AI大模型宝典:掌握未来的三本关键开发书籍,大模型书籍宝典
  • 【对比学习】正交阵/酉矩阵,对称矩阵/Hermite矩阵,正交相似对角化/奇异值分解的内在联系
  • 【架构-36】常见的各类锁的特点
  • 【高阶数据结构】红黑树的插入(超多精美图解+完整代码)
  • 【文心智能体 | AI大师工坊】如何使用智能体插件,完成一款旅游类智能体的开发,来体验一下我的智能体『​​​​​​​背包客』
  • 数据传输的事务定义有哪三种?
  • (N-154)基于springboot酒店预订管理系统
  • 【python】OpenCV—Tracking(10.3)—GOTURN
  • 树莓派开发相关知识三PWM控制转速
  • leetcode 1261.在受污染的二叉树中查找元素