python04——类(基础new)

类其实也是一种封装的思想,类就是把变量、方法等封装在一起,然后可以通过不同的实例化对其进行调用操作。

1.类的定义

class 类名:

        变量a

        def  __init__  (self,参数2,参数2...):初始化函数!!!

        其他方法函数。。。

注意:初始化函数只要是实例化调用该类,就会

2.类的实例化

实例化对象=类(参数)  #具体传参与否,传几个是要看 初始化函数 里面有几个参数需要

3.类变量 vs 实例化变量

一般在类中单独出现的就是类变量,类变量不会随着不同的实例化对象而改变,一般在类中的调用写法为“类名.变量”

实例化变量一般是在类的方法中出现的,不同的实例化对象对应的变量一般不同,一般在类中的写法为“self.变量名”

有时类变量和实例化变量的变量名相同,具体是类变量还是实例化变量要具体分析。

例子如下:

class people:name = "张三"  # 公共类变量__private_name = "李四"def __init__(self,name):self.name = name #只是与上面那个变量名字重了,不是一个东西(不管是self后面的还是等号后面的)self.__private_name = name #私有变量约定写法为 “__变量名”print("已经执行的初始化方法啦!")def canshu(self):print("公共类变量 是{},类变量是不会随着不同的实例化对象的 “传参” 而改变的,但是允许修改".format(people.name))print("公共实例化变量 是 {},""实例化变量的name值是与people类中第一处定义的“张三”不是一个变量,只是名字重了,""他会随着传入的参数而改变".format(self.name))print("私有实例化变量是{}".format(self.__private_name))people1=people("王五")#传入参数
print(people1.name)#这个是people1的name,是实例化变量,因此打印的是传入的参数,是init初始化里面的参数信息,不是类变量
people1.canshu()




4.继承 

继承就是子类虽然不写父类的方法、变量,但是实例化后,可以调用父类定义的方法、变量,也可以对其进行改写。

子类继承父类的写法:

class son_classname (father_classname):

        ......

        def __init__(self,...):

                .......

        .....

class father:father_temp = "父类类变量father_temp"father_temp1 = "父类的变量father_temp1 "def __init__(self):print("父类初始化函数")def f_func(self):print("父类的普通方法1")def f_func2(self, a):self.a = aprint("父类的实例化变量{}".format(a))class son(father):son_temp = "子的类变量son_temp "father_temp = "改变了父类的类变量father_temp————>son_ father_temp"def __init__(self):print("子类初始化函数")def s_func(self):print("子类普通方法")father1=father()
son1 = son()
son1.s_func()
print("------------------------------------")#子类继承父类的函数方法,所以在子类不写,也可调用此方法
son1.f_func()
son1.f_func2("son")
print("------------------------------------")
print(son1.son_temp)#子类的类变量
print(son1.father_temp1)#子类继承父类的类变量
print(son1.father_temp)#子类继承并改写父类的类变量
print("-------------------------------------")
print(father1.father_temp)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vivado DELAY_VALUE_XPHY、DIFF_TERM

延迟_值_XPHY PORT对象上的DELAY_VALUE_XPHY属性指定要添加的延迟量 Versal XPHY逻辑接口的输入或输出路径。在的早期阶段 opt_design在重新生成高级I/O向导IP时 DELAY_VALUE_XPHY值将从PORT复制到的XPHY实例上 输入或输出路径。Vivado设计套件中存在DRCs,以确保 DE…

简单实现联系表单Contact Form自动发送邮件

如何实现简单Contact Form自动邮件功能?怎样简单设置? 联系表单不仅是访客与网站所有者沟通的桥梁,还可以收集潜在客户的信息,从而推动业务的发展。AokSend将介绍如何简单实现一个联系表单,自动发送邮件的过程&#x…

java Collections类介绍

Java 的 java.util.Collections 类提供了一组静态方法,用于操作或返回集合(如列表、集合和映射)。Collections 类是一个实用工具类,旨在为集合提供便捷的算法和操作。以下是对 Collections 类及其常用方法的介绍。 常用方法总结 …

【游戏客户端】大话slg玩法架构(一)滚动基类

【游戏客户端】大话slg玩法架构(一)滚动基类 大家好,我是Lampard家杰~~ 今天我们兑现诺言,给大家分享SLG玩法的实现j架构,关于SLG玩法的介绍可以参考这篇上一篇文章:【游戏客户端】制作率土之滨Like玩法 PS…

保险理论与实践

《保险理论与实践》是由中国保险学会主办的学术集刊,于2016年1月正式创办,致力于发表权威、严谨、高质量的理论研究、政策研究和实务研究成果,强调学术性与政策性、理论性与实践性的有机结合。本刊由中国金融出版社公开出版,每月下…

postmessage()在同一域名下,传递消息给另一个页面

这里是同域名下&#xff0c;getmessage.html&#xff08;发送信息&#xff09;传递消息给index.html&#xff08;收到信息&#xff0c;并回传收到信息&#xff09; index.html页面 <!DOCTYPE html> <html><head><meta http-equiv"content-type"…

机器学习统计学基础 - 最大似然估计

最大似然估计&#xff08;Maximum Likelihood Estimation, MLE&#xff09;是一种常用的参数估计方法&#xff0c;其基本原理是通过最大化观测数据出现的概率来寻找最优的参数估计值。具体来说&#xff0c;最大似然估计的核心思想是利用已知的样本结果&#xff0c;反推最有可能…

Java并发编程工具包(JUC)详解

在现代软件开发中&#xff0c;多线程编程是一个不可避免的话题。为了更好地管理和利用多线程&#xff0c;Java提供了一个强大的工具包——java.util.concurrent&#xff08;简称JUC&#xff09;。JUC包含了许多用于并发编程的类和接口&#xff0c;帮助开发者高效、安全地处理线…

binutils ifunc 流程图

上图是x86 binutils 的流程图。 函数说明_bfd_x86_elf_link_hash_table_createInit local STT_GNU_IFUNC symbol hash.elf_x86_64_check_relocsAdd support for handling STT_GNU_IFUNC symbols_bfd_elf_x86_get_local_sym_hashFind and/or create a hash entry for local sym…

[Go] 字符串遍历数据类型问题

字符串遍历问题 在使用for i,v:range str遍历字符串时 str[i]是unit8&#xff08;byte&#xff09;类型&#xff0c;返回的是单个字节 字符串在Go中是以字节序列的形式存储的&#xff0c;而 str[i] 直接访问了这个字节序列中的第 i 个字节。如果字符串中的字符是单字节的ASCII…

Leetcode—97. 交错字符串【中等】

2024每日刷题&#xff08;140&#xff09; Leetcode—97. 交错字符串 2d动规实现代码 class Solution { public:bool isInterleave(string s1, string s2, string s3) {int m s1.length();int n s2.length();int len s3.length();if(m n ! len) {return false;}vector<…

SpringBoot日常:封装rabbitmq starter组件

文章目录 逻辑实现RabbitExchangeEnumRabbitConfigRabbitModuleInfoRabbitModuleInitializerRabbitPropertiesRabbitProducerManagerPOM.xmlspring.factories 功能测试application.yml配置生产者&#xff1a;消费者&#xff1a;测试结果&#xff1a;总结 本章内容主要介绍编写一…

stm32 USB CDC类虚拟串口初体验

1. 目标 本文介绍CubeMX生成 USB CDC类虚拟串口工程的操作步骤。 2. 配置流程 时钟配置 usb外设需要48M时钟输入 stm32405使用外部时钟源HSE,否则配不出来48M时钟stm32h750内部有一个48M时钟 stm32f405时钟配置 stm32h750时钟配置 Connectivity ->USB_OTG_FS 和 Connect…

GEE代码实例教程详解:植被状况指数(VCI)与干旱监测

简介 在本篇博客中&#xff0c;我们将使用Google Earth Engine (GEE) 进行植被状况指数&#xff08;Vegetation Condition Index, VCI&#xff09;的计算和干旱监测。通过MODIS NDVI数据&#xff0c;我们可以评估2001年至2024年间的植被状况和干旱等级。 背景知识 MODIS NDV…

C++初阶:从C过渡到C++的入门基础

✨✨所属专栏&#xff1a;C✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ C发展历史 C的起源可以追溯到1979年&#xff0c;当时BjarneStroustrup(本贾尼斯特劳斯特卢普&#xff0c;这个翻译的名字不同的地⽅可能有差异)在⻉尔实验室从事计算机科学和软件⼯程的研究⼯作。⾯对项⽬中复…

第4章 Vite模块化与插件系统(二)

4.3 常用插件介绍 4.3.1 官方插件 vitejs/plugin-vue 用于支持 Vue.js 开发&#xff1a; npm install vitejs/plugin-vue --save-devimport vue from vitejs/plugin-vueexport default defineConfig({plugins: [vue()] })vitejs/plugin-react 用于支持 React 开发&#xf…

JavaDS —— 顺序表ArrayList

顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存储。在数组上完成数据的增删查改。在物理和逻辑上都是连续的。 模拟实现 下面是我们要自己模拟实现的方法&#xff1a; 首先我们要创建一个顺序表&#xff0c;顺序表…

关于Mars3d的入门

关于Mars3d的入门 一. 创建地球&#xff0c;加载瓦片图层二 矢量图层2.1 常用矢量图层2.1.1 GraphicLayer2.1.2 GeoJsonLayer 2.2 矢量图层的点击事件 三 矢量数据四 事件机制 一. 创建地球&#xff0c;加载瓦片图层 // 1. 创建地球let map new mars3d.Map("mars3dContai…

基于openStreetMap的路径规划ROS功能包

文章目录 概要OSM是什么主要特点主要组成部分使用场景如何获取OSM常规参数配置笛卡尔坐标系原点经纬度设置编译和运行如何规划演示效果概要 由于https://github.com/MichalDobis/osm_planner存在一些使用问题,不是那么方便,我对其进行了一些修改,便于进行起点到终点进行路径…

数据如何查询

分组查询 分组查询&#xff08;Group By&#xff09;是在关系型数据库中用来对数据进行分组并对每个组应用聚合函数的一种操作。这种查询通常结合聚合函数&#xff08;如 COUNT、SUM、AVG、MAX、MIN 等&#xff09;使用&#xff0c;用于在查询结果中生成汇总信息 特点(聚合)&am…