尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

面向对象初级

面向对象初级
📅 发布时间:2026/6/19 2:44:53

    面向对象初级:

    1.面向对象三大特征:封装  继承   多态    self含义:  指向实例对象本身,让实例能够访问类中的属性和方法

    2.类和对象的创建:    

类和对象的创建(登录注册功能)
class User:def __init__(self,name,pwd):self.name = nameself.pwd = pwdclass User_Mannager():def __init__(self):self.user_list = []#存放User类对象def regist(self):"""用户注册"""while True:name = input('输入用户名N(退出):')if name.upper() == 'N':breakfor item in self.user_list:if item.name == name:print('用户名已存在,重新输入')flag = Truebreakelse:pwd = input('输入密码:')self.user_list.append(User(name,pwd))print('注册成功')returncontinuedef Login(self):"""用户登录"""while True:name = input('输入用户名:')pwd = input('输入密码:')for i in self.user_list:if i.name == name and i.pwd == pwd:print('登录成功')returnelse:print('用户名密码错误')continuedef run(self):"""程序入口"""while True:func_dict = {'1':self.Login,'2':self.regist}print('界面(N退出):1【登录】2.【注册】')num = input('输入:')if num.upper() == 'N':returnfunc = func_dict.get(num)if func:func()else:print('输入错误')if __name__ == "__main__":obj = User_Mannager()obj.run()

属性:对象具有的特征叫属性

    设置和获取对象具有的属性:

      1,静态  类中:  对象.属性=值    

             外部:  设置:obj = Foo(属性的值)

                  获取:对象.属性  

      2,动态(反射):以字符串的形式去设置获取对象属性  类中:对象.属性=值或者pass  

                                外部:setattr:新增此对象的属性及值或者修改此对象已经具有的属性的值    

                                   格式:setattr(对象   ,属性   (字符串形式),值   (任意类型))

                                   getattr:获取对象已经具有的属性的值                

                                   格式:getattr(对象,属性  (字符串形式),默认值(属性不存在时返回,任意类型)

属性的设置和获取(静态和动态)
#设置和获取对象的值方法一(静态):
class Foo:def __init__(self,n,p):     #给这个类所创建的对象中公有的属性进行值的初始化self.name = nself.pwd = p
obj = Foo('guohan',123)     #设置对象属性的值(对象属性的值封装到对象中)
print(obj.name)     #获取对象的值
#>>>guohan#设置和获取对象的值方法二(动态:内置函数):     setattr getattr
class Foo:def __init__(self,n,p):     #给这个类所创建的对象中公有的属性进行值的初始化self.name = nself.pwd = p
obj = Foo(1,1)
n = input('输入用户名:')
p = input('输入密码:')
setattr(obj,'name',n)    #通过内置函数setattr去设置\修改对象的属性
setattr(obj,'pwd',p) 
data1 = getattr(obj,'name',0)   #通过内置函数getattr去获取对象中封装的属性的值
data2 = getattr(obj,'pwd',0)
data3 = getattr(obj,'email',0)
print(data1)
print(data2)
print(data3)
#>>>guoahn
#>>>111
#>>>0

    3.封装:    同一类的方法封装到同一类中    值封装到对象中

            类中的属性和方法:公有(一般都是)  私有(以_开头):类实例化的对象无法直接访问私有成员(属性和方法)

            获取对象中封装的所有值

对象.__dict__以字典形式获取对象的属性和值
#获取对象中封装的所有的属性ji
class Foo:def __init__(self,name,pwd,eamil):self.name = nameself.pwd =  pwdself.eamil = eamil
obj = Foo('guohan','123','888')
print(obj.__dict__)
#>>>{'name': 'guohan', 'pwd': '123', 'eamil': '888'}
setattr(obj,'name','gh')
print(obj.__dict__)
#>>>{'name': 'gh', 'pwd': '123', 'eamil': '888'}

    4.继承:    搞清楚self是谁由谁创建 调用方法时去self自己的类中去找  

            查找方法顺序:先再自己类中找再去基类找(多个基类则由左至右)  时刻注意self是谁

    5.多态:    对于一个函数而言,Python对于参数的类型不会限制,那么传入参数时就可以是各种类型,在函数中如果有例如:arg.方法,那么就是对于传入类型的一个限制(类型必须有该方法)。
              这就是鸭子模型只要有该方法,就是我们要想的类型

 

相关新闻

  • 【文章目录】
  • Excel DDE 教學:即時資料交換的詳細指南 - 指南
  • 实用指南:JavaWeb 课堂笔记 —— 24 AOP 面向切面编程

最新新闻

  • 全国学历提升继续教育学习体验实录
  • 验证码绕过实战:从Pikachu靶场剖析客户端与服务端漏洞原理
  • Mission Planner终极指南:5步掌握开源无人机地面站专业飞行控制
  • Gemini大模型系列技术解析与真实能力边界
  • 修复kkFileView XSS漏洞与POI文件预览兼容性问题实战
  • 弱监督学习与概率提示技术在3D目标检测中的应用

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号