python基础问题记录

文章目录

  • 前言
  • 一、python中类的注意点
  • 二、模块与包
    • 1. 模块
    • 2. 包
  • 总结


前言

本专栏主要记录python中一些语法问题。

一、python中类的注意点

  1. 类属性:在类中定义的属性
    在类中直接写明的变量是类属性,属于公共属性。

    • 访问:类属性可以通过类或者类的实例访问
    • 修改:通过类对象修改的属性,在后续新实例对象会修改,已经创建的实例对象不会修改。
  2. 方法:在类中定义的函数(方法)

    • 实例方法:self作为首个参数。
      • 通过实例对象调用时:自动将当前实例作为self传入。
      • 通过类调用时,需手动把类对象传递给self。
    • 类方法:使用装饰器@classmethod修饰。
      • 类方法内不可以直接调用实例方法,也不可以调用实例变量。
      • 类和实例都可以直接调用类方法。
    • 静态方法:@staticmethod 修饰,是一个 Python 的一个内置装饰器,用于定义静态方法。静态方法是类中的方法,与类的实例无关,也无法访问类的实例变量或其他实例方法。静态方法通过类名调用,而不是通过实例调用。
    • 特殊方法:前后有两个下划线“_名字_”,特殊方法一般在特殊时刻自动调用。如__init__会在创建对象时自动调用。
  3. 双下划线与单下划线
    双下划线的属性或者方法,只能在类中使用,在外部使用会直接报异常,单下划线开头的不建议外部使用,但实际仍可外部调用。

  4. 装饰器
    装饰器能够使得不影响原有函数功能的基础上,添加新的功能。

    • @property:可以将方法使用类似属性的方式调用。
    class MyClass: _name = 1@propertydef name(self):return self._name
    m = MyClass()
    print(m.name)
    
    • @属性名.setter给属性赋值

二、模块与包

1. 模块

模块化指将一个完整的程序分解为一个一个小的模块,通过将模块组合,搭建出一个完整的程序

  • 不采用模块化,统一将所有的代码编写到一个文件中
  • 采用模块化,将程序分别编写到多个文件中

模块化的优点:方便开发、方便维护、模块可复用

python中一个py文件就是一个模块,要想创建模块,实际上就是创建一个python文件

2. 包

包也是一个模块

普通的模块就是一个py文件,而包是一个文件夹

  • 当模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用到包
  • 包中必须要一个一个 init.py文件,这个文件中导入有必要的内容,不要做没必要的运算
  • init.py相关内容:_init_.py 的作用
    • 标识包:_init_.py 文件的存在表明包含它的目录是一个包。没有这个文件的目录不会被 Python 解释器识别为包。

    • 执行初始化代码:当包被导入时,_init_.py 中的代码会自动执行。这可以用来初始化包、设置变量、导入子模块等。

    • 控制导入行为:可以在 _init_.py 中定义 _all_ 列表来控制 from package import * 语句的行为。

总结

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

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

相关文章

k8s如何使用 HPA 实现自动扩展

使用Horizontal Pod Autoscaler (HPA) 实验目标: 学习如何使用 HPA 实现自动扩展。 实验步骤: 创建一个 Deployment,并设置 CPU 或内存的资源请求。创建一个 HPA,设置扩展策略。生成负载,观察 HPA 如何自动扩展 Pod…

redis实战-缓存穿透问题及解决方案

定义理解 缓存穿透:缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远都不会生效(只有数据库查到了,才会让redis缓存,但现在的问题是查不到),会频繁的去访问数据库。 解决…

JavaScript——条件和赋值运算符

目录 任务描述 相关知识 条件运算符 赋值运算符 编程要求 任务描述 本关任务&#xff1a;计算并返回两个字符串中较大的字符串。字符串的大小比较直接使用比较运算符>或者<即可。 例如&#xff1a;对于字符串 aa 和 ab&#xff0c;要求返回 ab 。 相关知识 条件运…

Elasticsearch查询上下文和_source

查询上下文 {"took": 1,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 1,"relation"…

前端库--nanoid(轻量级的uuid)

定义&#xff1a; UUID 是 通用唯一识别码&#xff08;Universally Unique Identifier&#xff09;的缩写&#xff0c;生成全球唯一的一串字符编码。 生成方式&#xff1a; UUID是基于当前时间、计数器&#xff08;counter&#xff09;和硬件标识&#xff08;通常为无线网卡…

系统运维面试总结(系统权限)

系统运维面试总结&#xff08;系统权限&#xff09; 一、权限优化简述Linux权限划分原则二、备份策略三、Raid四、资源查看五、Linux启动流程 一、权限优化简述Linux权限划分原则 ckhunter也是一款常用的Linux杀毒软件 不可修改但可删除 二、备份策略 供参考较为全面的备份方案…

【Redis】SpringBoot连接Redis

1. 创建项目并配置文件 勾选NoSQL中的 Spring Data Redis。当然,把 Web 中的 SpringWeb 也勾选一下.方便写接口进行后续测试。 在 application.yml 中配置 2. 不同数据类型使用Demo 在SpringBoot中&#xff0c;为我们提供了StringRedisTemplate类&#xff0c;供我们处理一些文…

期末重现题型--错题集

看书里的定义&#xff1a;链表是一种常见而重要的动态存储分布的数据结构。它由若干个同一结构类型的“结点”依次串联而成的。

keil软件的一些使用技巧

1.MDK 的 TAB 键支持块操作 也就是可以让一片代码整体右移固定的几个位&#xff0c;也可以通过 SHIFTTAB 键整体左移固定的几个位。 2.快速注释与快速消注释 就是先选中你要注释的代码区&#xff0c;然后右键&#xff0c;选择Advanced→Comment Selection 就可以了。 3.快速打…

ComfyUI效率节点Efficient示例

文生图工作流 Efficient Loader节点用于高效加载和缓存模型 ckpt_name&#xff1a;选择要加载的检查点模型的名称。通常选择你的主要模型名称 vae_name&#xff1a;定义要使用的VAE&#xff08;变分自编码器&#xff09;模型。一般选择与你的主要模型匹配的VAE&#xff0c;或者…

Open vSwitch 行为匹配的实现

一、Datapath 模块的行为匹配 在 Open vSwitch 的数据包转发流程中&#xff0c;存在快速路径和慢速路径两种模式&#xff0c;如下图所示&#xff1a; 其中&#xff0c;快速路径直接在 Datapath 模块完成行为匹配&#xff0c;将数据包转发出去。而慢速路径的数据包无法在 Datapa…

厦门新能安科技Ampace校招实习待遇及Verify测评SHL演绎数字推理历年真题题库

一、厦门新能安科技公司介绍 厦门新能安科技有限公司主要业务包括电池制造和销售&#xff0c;电容器及其配套设备制造与销售&#xff0c;电池零配件生产与销售。此外&#xff0c;公司还提供包括技术服务、技术开发、技术咨询、技术交流、技术转让和技术推广在内的全方位服务。公…

HarmonyOS Next开发学习手册——选项卡 (Tabs)

当页面信息较多时&#xff0c;为了让用户能够聚焦于当前显示的内容&#xff0c;需要对页面内容进行分类&#xff0c;提高页面空间利用率。 Tabs 组件可以在一个页面内快速实现视图内容的切换&#xff0c;一方面提升查找信息的效率&#xff0c;另一方面精简用户单次获取到的信息…

01_初识Java

1:软件 101001010010110101010010 一些计算机指令的集合 系统软件 window linux mac 应用软件 QQ note 2&#xff1a;计算机语言 ---汇编语言---pasical vb vf c c c# php java 源码---->编译---->可执行 java --一种面向对象的高级语言…

微软推出集成GPT-4o的文本转语音虚拟数字人服务

微软近日宣布&#xff0c;其全新的文本转语音虚拟数字人服务正式上线&#xff0c;并集成了GPT-4o技术。这一服务为用户提供了创建实时互动数字人的可能。通过先进的自然语言处理技术&#xff0c;数字人能够将文本转化为自然流畅的语音&#xff0c;并配以生动的虚拟形象&#xf…

Zookeeper是什么

ZooKeeper&#xff08;动物园管理员&#xff09;是一个开源的分布式协调服务&#xff0c;主要用于分布式应用程序的协调和管理。它由Apache软件基金会开发和维护&#xff0c;提供了一个高度可靠的分布式协调服务&#xff0c;以解决分布式系统中常见的一致性问题。 主要特性和用…

System Design - basic - Sharding in horizontal scaling of databases

Sharding in horizontal scaling of databases is a technique used to distribute data across multiple database servers to enhance performance, scalability, and availability. Here’s a detailed explanation: What is Sharding? Sharding involves breaking up a …

【ubuntu】切换shell并显示git分支名字

y9kp 显示当前shell echo $SHELLwhich bash根据输出&#xff0c;例如 /bin/bash 改变shell&#xff1a; chsh -s /bin/bash退出重新登录 加入函数及覆盖PS1 # Function to return the current Git branch name git_branch() {# Check if the current directory is in a Git …

[数据集][目标检测]猪只状态吃喝睡站检测数据集VOC+YOLO格式530张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;530 标注数量(xml文件个数)&#xff1a;530 标注数量(txt文件个数)&#xff1a;530 标注类别…

在Redis中使用Lua脚本实现多条命令的原子性操作

Redis作为一个高性能的键值对数据库&#xff0c;被广泛应用于各种场景。然而&#xff0c;在某些情况下&#xff0c;我们需要执行一系列Redis命令&#xff0c;并确保这些命令的原子性。这时&#xff0c;Lua脚本就成为了一个非常实用的解决方案。 问题的提出 假设我们有一个计数…