python——第十六天
面向对象——继承
class RichMan(object):
def __init__(self):
self.money = 1000000000
self.company = "阿里巴巴"
self.__secretary = "小蜜"
def speak(self):
print(f"我对钱不感兴趣,我最后悔的事,就是创建了{self.company}")
def __self_info(self):
print("我有些私密的事,不想让别人")
class Son(RichMan):
# pass
# def __init__(self, name, age):
# self.name = name
# self.age = age
def tell(self):
print("我是一个富二代")
def speak(self):
print("各位叔叔伯伯,请多多关照")
if __name__ == '__main__':
# s = Son("张三", 16)
# print(s.name)
# print(s.age)
# print(s.money)
# print(s.company)
# s.speak()
# s.__self_info()
s = Son()
s.speak()
面向对象的特征——封装
class User(object):
def __init__(self, name, age, password, nickname):
# 将属性私有化
self.__name = name
self.age = age
self.password = password
self.nickname = nickname
def login(self, name, password):
if name == self.__name and password == self.password:
print("登录成功")
self.__show_info()
else:
print("登录失败")
self.__show_info()
def __show_info(self):
# 该方法是私有化方法,所以只能在该类内部,外界访问访问
print(f"我的名字叫做{self.__name}\n,我的年龄是{self.age}")
def get_name(self):
return self.__name
def set_name(self, name):
self.__name = name
# 使用property全局函数,二次封装name属性!!!
name = property(get_name, set_name)
if __name__ == '__main__':
u1 = User("张三", 16, "123456", "法外狂徒")
# print(dir(u1))
# print(u1.__name)
# u1.__name = "liujianhong"
# u1.login("liujianhong", "123456")
# print(u1.__name)
# print(u1.get_name())
# u1.set_name("liujianhong")
# print(u1.get_name())
# u1.login("liujianhongafdas", "123456")
# u1.__show_info()
print(u1.name)
u1.name = "李四"
print(u1.name)
print(u1.get_name())
面向对象——封装的其他写法
class User(object):
def __init__(self, name, age, password, nickname):
# 将属性私有化
self.__name = name
self.age = age
self.password = password
self.nickname = nickname
def login(self, name, password):
if name == self.__name and password == self.password:
print("登录成功")
self.__show_info()
else:
print("登录失败")
self.__show_info()
def __show_info(self):
# 该方法是私有化方法,所以只能在该类内部,外界访问访问
print(f"我的名字叫做{self.__name}\n,我的年龄是{self.age}")
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
if __name__ == '__main__':
u1 = User("张三", 16, "123456", "法外狂徒")
# print(dir(u1))
# print(u1.__name)
# u1.__name = "liujianhong"
# u1.login("liujianhong", "123456")
# print(u1.__name)
# print(u1.get_name())
# u1.set_name("liujianhong")
# print(u1.get_name())
# u1.login("liujianhongafdas", "123456")
# u1.__show_info()
print(u1.name)
u1.name = "李四"
print(u1.name)
面向对象的特性及相关知识
面向对象的三大特征:
|--封装
|--继承
|--多态
封装:
在面向对象中,封装往往有两层含义:
1、类会将类成员封装在类内部
2、类的属性,私有化,不让外界访问,如果外界需要访问,则提供对于的公开的方法或方式
python如何私有化属性或者方法:
1、正常命名的属性或者方法
name
age
speak()
2、双下划线的属性或者方法(魔法属性或者方法 double line methon/attribute)
_doc_
_int_()
_eq_
_init_()
3、前面加一个下划线的属性或者方法
_name
_age
_nickname
这样定义的无法使用 from xxx import* 这种导入方式导入到其他模块中
4、封装
__属性名称或者方法名称
class User(object):
def __init__(self,name,age,password,nickname) :
#将属性私有化#
self.__name=name
self.age=age
self.password=password
self.nickname=nickname
def login(self,name,password):
if name==self.__name and password==self.password:
print("登录成功")
self.__show_info()
else:
print("登录失败")
self.__show_info()
def __show_info(self):
#该方法是私有化方法,所以只能在该类内部,外界无法访问
print(f"我的名字叫做{self.__name}\n,我的年龄是{self.age}")
def get_name(self):
return self.__name
def set_name(self,name):
self.__name=name
if __name__=='__main__':
u1=User("zhangsan",16,"123456","法外")
print(u1.get_name())
u1.set_name("hjt")
print(u1.get_name())
u1.login("hjt","123456")
继承:
在面向对象中,存在了类继承类的特征,这个就是我们说的——继承
父类:被继承的类,被称为父类,也被称为超类(super class)
子类:继承父类的类,被称为子类
方法重写、方法覆盖(override、overwrite)
在继承的关系中,如果子类继承父类中某一个或者某些方法时,如果想要修改原有方法
这需要重写该方法
函数重载(overload):
相关文章:
python——第十六天
面向对象——继承 class RichMan(object): def __init__(self): self.money 1000000000 self.company "阿里巴巴" self.__secretary "小蜜" def speak(self): print(f"我对钱不感兴趣,我最后悔的事,就是创建了{self.company…...
JWT介绍及演示
JWT 介绍 cookie(放在浏览器) cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。 cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本…...
Android Studio新版UI介绍
顶部菜单栏 左侧主要菜单入口项目名称分支名称 展开之后,主要功能与原来菜单栏功能一样,最大的变化就是把setting独立出去了。 而项目名称这里,展开就可以看到打开的历史工程列表,可以直接新建工程,原来需要在项目名称…...
基于ssm应急资源管理系统论文
摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本应急资源管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…...
K8S学习指南(9)-k8s核心对象init pod
文章目录 引言什么是Init容器?Init容器的使用场景1. 数据初始化2. 网络设置3. 等待依赖服务 Init容器的生命周期1. **Pending**2. **Running**3. **Terminated** Init容器的示例Init容器的高级用法结论 引言 Kubernetes(简称K8s)是一个强大的…...
以太坊:前世今生与未来
一、引言 以太坊,这个在区块链领域大放异彩的名字,似乎已经成为了去中心化应用(DApps)的代名词。从初期的萌芽到如今的繁荣发展,以太坊经历了一段曲折而精彩的旅程。让我们一起回顾一下以太坊的前世今生,以…...
vue3若依框架,在页面中点击新增按钮跳转到新的页面,不是弹框,如何实现
在router文件中的动态路由数组中新增一个路由配置,这个配置的就是新的页面。 注意path不要和菜单配置中的路径一样,会不显示内容。 在菜单配置中要写权限标识就是permissions:[]里的内容 在children里的path要写占位符info/:data 点击新增按钮&#x…...
【大模型】800万纯AI战士年末大集结,硬核干货与音乐美食12月28日准时开炫
文章目录 WAVE SUMMIT五载十届,AI开发者热血正当时酷炫前沿、星河共聚!大模型技术生态发展正当时 回望2023年,大语言模型或许将是科技史上最浓墨重彩的一笔。从技术、产业到生态,大语言模型在突飞猛进中加速重构万物。随着理解、生…...
linux配置python环境
目录 安装screen安装解压工具安装python环境安装程序所需要的依赖包镜像附录 安装screen screen用于后台运行程序 先升级包管理工具 sudo apt-get update 安装screen sudo apt-get install screen创建screen screen -S erl安装解压工具 对上传到服务器的文件进行解压 …...
【教程】app备案流程简单三部曲即可完成
APP备案流程包括以下步骤: 1. 开发者实名认证:在提交备案申请之前,开发者需要通过移动应用开发平台进行实名认证。这个步骤需要提供身份证号码、姓名、联系方式等信息,并上传相关证件照片或扫描件。 2. 应用信息登记:…...
C++使用vector创建二维数组并指定大小
一、一维容器的初始化: vector<int> v(n)表示声明一个容器v,并给他预定存储空间。每一个单元初始化为0,因此,vector<int> v(n)vector<int> v(n, 0)。 如果想要初始化为其他值,可改为vector<int…...
Spring支持哪几种事务管理类型,Spring 的事务实现方式和实现原理是?
1.Spring事务简介 事务作用:在数据层保障一系列的数据库操作同成功同失败 Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败 为何需要在业务层处理事务?:有些操作在数据层无法保证同成功同失败,…...
书-二分查找找某个数字p155
#include<stdio.h> int main(){int a[10]{1,4,5,6,7,8,23,34,90,14567};int mid;int low0;int high9;while(low<high){mid(lowhigh)/2;//数组分成两段,前一段low-mid,后一段mid-highif (a[mid]<23)//因为已经是排序好的了,所以如…...
【NLP】RAG 应用中的调优策略
检索增强生成应用程序的调优策略 没有一种放之四海而皆准的算法能够最好地解决所有问题。 本文通过数据科学家的视角审视检索增强生成(RAG)管道。它讨论了您可以尝试提高 RAG 管道性能的潜在“超参数”。与深度学习中的实验类似,例如&am…...
Android-Framework 默认隐藏导航栏,添加控制显示属性
一、环境 高通865 Android 10 二、源码修改 device/qcom/qssi/system.prop -217,3 217,5 persist.ruichi.gpu2persist.ruichi.gpu_max587persist.ruichi.gpu_min305# Show navigation bar, 0 for display, 1 for hidden persist.navbar.status1 frameworks/base/services/…...
【AIGC】Midjourney高级进阶版
Midjourney 真是越玩越上头,真是给它的想象力跪了~ 研究了官方API,出一个进阶版教程 命令 旨在介绍Midjourney在Discord频道中的文本框中支持的指令。 1)shorten 简化Prompt 该指令可以将输入的Prompt为模型可以理解的语言。模型理解语言…...
C语言学习----指针和数组
🌈这篇blog记录一下指针学习~ 主要是关于指针和数组之间的关系,还有指针的使用等~ 🍎指针变量是一个变量 其本身也有一个地址 也需要存放,就和int char等类型一样的,也需要有一个地址来存放它 🍌而指针变量…...
学习Node.js与Webpack总结
今天学习了模块化的简介,其实一个项目是由很多个模块文件组成的,它们有它们各自的功能和用途来协助这个项目的完成,这样的模块组成有很多的好处比如提高代码的复用性、还可以按需加载、还有独立的作用域,还需要搞清楚的一点就是No…...
JAVA基础知识:泛型
一、什么是泛型? 泛型是Java中的一种参数化类型机制,它允许在类或方法的声明中使用类型参数,以实现代码的通用性和类型安全性。通过使用泛型,我们可以编写更加灵活和可复用的代码,同时减少类型转换错误的可能性。 二、…...
【WinRAR】为什么右键没有压缩选项?
我们安装了WinRAR之后想要压缩文件,但是右键点击文件之后发现并没有WinRAR压缩选项,这应该如何设置才能出现右键带有压缩选项呢?方法如下: 首先打开WinRAR,在上面功能中点击选项 – 设置 然后我们在设置界面中切换到集…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
