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,在上面功能中点击选项 – 设置 然后我们在设置界面中切换到集…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...
leetcode73-矩阵置零
leetcode 73 思路 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...
电脑桌面太单调,用Python写一个桌面小宠物应用。
下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡,可以响应鼠标点击,并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...
