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

python之类和对象

直接写:

class Student: name = None age = None address = None # 修正拼写 total = 10 for i in range(total): print(f"当前录入第{i+1}位学生信息,总共录入{total}位学生信息") stu = Student() stu.name = input("请输入学生姓名:") stu.age = int(input("请输入学生年龄:")) stu.address = input("请输入学生地址:") # 修正:用 i+1 显示学生编号 print(f"学生{i+1}信息录入完成,信息为:" f"【学生姓名:{stu.name}," f"年龄:{stu.age}," f"地址:{stu.address}】")

构造方法:

class Student: # 构造方法:在创建对象时自动调用 def __init__(self, name, age, address): self.name = name self.age = age self.address = address total = 10 for i in range(total): print(f"当前录入第{i+1}位学生信息,总共录入{total}位学生信息") # 先用 input 获取用户输入 name = input("请输入学生姓名:") age = int(input("请输入学生年龄:")) address = input("请输入学生地址:") # 构造方法:创建对象时直接传入数据 stu = Student(name, age, address) print(f"学生{i+1}信息录入完成,信息为:" f"【学生姓名:{stu.name}," f"年龄:{stu.age}," f"地址:{stu.address}】")

普通的类:先定义类,然后创建对象,创建后需要一个一个地手动赋值

有构造方法的类:在定义类时就设计好“模板”,创建对象时直接把所有数据一次性传进去,自动完成赋值。


关键区别细化

对比维度普通类(无构造方法)有构造方法的类
定义方式class Student:
name = None
class Student:
def __init__(self, name):
self.name = name
创建对象stu1 = Student()
stu2 = Student()
stu1 = Student("小明")
stu2 = Student("小红")
赋值时机创建之后,单独赋值创建的同时,直接赋值
代码行数多(需要多行赋值)少(一行搞定)

一句话终极总结

构造方法就是“快速填表工具”
普通方式:先拿空表,再手写填内容。
构造方法:直接把内容打印在表上,一次成型。

普通方法:先拿空表,一项一项填

python

stu = Student() # 拿空表 stu.name = "周杰轮" # 填姓名 stu.age = 31 # 填年龄 stu.address = "北京" # 填地址

构造方法:信息准备好,一次性全填

python

# 先准备好信息 name = "周杰轮" age = 31 address = "北京" stu = Student(name, age, address) # 一次性全填好
http://www.jsqmd.com/news/1093411/

相关文章:

  • Gliding Horse 的 L2 作战地图:让多 Agent 协作从“摸黑”变成“透明”
  • 具身智能2.0时代洗牌局:2026国内头部具身企业第一梯队为何是“宇树、智元、越疆”?
  • 暗黑3终极自动化战斗宏:D3KeyHelper技术解析与实战应用
  • STC8H单片机IAP串口升级实战:告别冷启动,实现远程程序更新
  • 【单片机毕业设计】基于 STM32 的智能感应开盖垃圾桶设计,基于单片机的溢满检测自动垃圾桶控制系统(013101)
  • 应用场景与方案优势
  • 告别会议低效:智能会议系统的本地化部署方案
  • Java毕设项目:基于 SpringBoot+Vue 的网络域名管理系统设计与实现 前后端分离架构下 Web 域名运维管理平台 (源码+文档,讲解、调试运行,定制等)
  • tensorRT整个系列的总结(包括量化,减枝)
  • 立个flag。周四发表一篇文章。
  • Python变量作用域全解析:从局部到全局,彻底掌握LEGB规则
  • 无需备份即可从 iPhone 恢复已删除短信的 4 种方法
  • 智慧安防行业物联网技术与方案指南:从监控到应急响应的全方位解决方案
  • 【RISC-V】解决WSL2命令行总是出现bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)的问题
  • 【计算机毕业设计案例】网络域名资源分配与统筹管理系统设计 信息化视角下域名生命周期管理系统设计(程序+文档+讲解+定制)
  • Android 开发问题:Invalid <color> for given resource value.
  • Shopify分销系统搭建指南:适合初创团队的低成本增长方案
  • 我用 Claude Code 做 Code Review 两个月,Bug 漏检率从 41% 降到 11%
  • 服装收银系统究竟哪个好?最后我选了这个
  • 别再混着说了:2026 AI Agent 技术栈分层(tool / Skill / MCP / A2A / Context Harness Engineering)
  • Codex Agent Legion 实现原理与 GitHub 使用指南
  • 剪流AI员工手机数据安全架构解析:企业客户资料是否存在泄露风险?
  • 墨香情手游全域自由轻功,无束缚飞檐走壁闯江湖
  • .Net如何在AgentFramework中给AI智能体给AI添加执行python脚本和运行代码的能力后——后续可用于对接openClaw技能
  • Mybatis基础操作
  • Rust的async函数中的await点优化与编译器在状态机生成中的转换
  • 各类幕墙验收时应提供的资料
  • Skill用得好,下班走得早:一文讲透Skill的结构与设计
  • AI native: Casebook 面向 AI Agent 时代的测试用例工程化工作流
  • 149期目录 黄大年茶思屋“难题揭榜”第149期--云核心网领域第四期