python零散学习

__name__和__main__关系

python函数入口
每个模块都有一个 __name__ 属性,当其值是 __main__ 时,表明该模块自身在运行(此时__name__==__main__),否则是被引入(此时__name__==自身的模块名称)。

变量/函数的命名规则(下划线)

原博主详细讲解

变量:

常量 : 大写加下划线

USER_CONSTANT

对于不会发生改变的全局变量,使用大写加下划线。

私有变量 : 一个前导下划线+小写(_私有

_private_value

Python 中不存在私有变量一说,若是遇到需要保护的变量,使用小写和一个前导下划线。但这只是程序员之间的一个约定,用于警告说明这是一个私有变量,外部类不要去访问它。但实际上,外部类还是可以访问到这个变量。

内置变量 : 两个前导下划线和两个后置下划线+小写(__内置__

__class__

两个前导下划线会导致变量在解释期间被更名。这是为了避免内置变量和其他变量产生冲突。用户定义的变量要严格避免这种风格。以免导致混乱。

函数和方法:

总体而言应该使用,小写和下划线。但有些比较老的库使用的是混合大小写,即首单词小写,之后每个单词第一个字母大写,其余小写。但现在,小写和下划线已成为规范。

私有方法 : 一个前导下划线+小写(_method私有

def _secrete(self):
    print "don't test me."

这里和私有变量一样,并不是真正的私有访问权限。同时也应该注意一般函数不要使用两个前导下划线(当遇到两个前导下划线时,Python 的名称改编特性将发挥作用)。特殊函数后面会提及。

特殊方法 :两个前导下划线,两个后置下划线 + 小写 (__特殊保护内置__

def __add__(self, other):
    return int.__add__(other)

这种风格只应用于特殊函数,比如操作符重载等。

函数参数 : 小写和下划线,缺省值等号两边无空格

def connect(self, user=None):
self._user = user

class相关

self

Python中self用法详解

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score

Class类的实例化,并赋予相应的参数:

>>>student = Student("Hugh", 99)
>>>student.name
"Hugh"
>>>student.score
99

注意:
(1)、__init__方法的第一参数永远是self,表示创建的类实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
(2)、有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器会自己把实例变量传进去。
(3)、self就是指类本身!!!!

在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。(python和java在面向对象真的很像耶!!!)

现在观察koji源码中的类,恰恰验证了class中的每个函数中的第一个输入参数都是self:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度强化学习(王树森)笔记06

深度强化学习(DRL) 本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL 源代码链接:https://github.c…

SpringBoot整合Quartz任务,java对任务创建、删除、修改、查询

SpringBoot整合Quartz定时任务 1、定时任务相关概念2、SpringBoot集成Quartz2.1、Quartz相关表2.2、pom.xml2.3、application.yml2.4、java对任务增删改查2.4.1、common相关配置类2.4.2、pojo类2.4.3、task类2.4.4、Controller类 3、一些理解3.1、Quartz的集群原理以及配置&…

Android 基础技术——Bitmap

笔者希望做一个系列,整理 Android 基础技术,本章是关于 Bitmap Bitmap 内存如何计算 占用内存 宽 * 缩放比例 * 高 * 缩放比例 * 每个像素所占字节 缩放比例 设备dpi/图片所在目录的dpi Bitmap加载优化?不改变图片质量的情况下怎么优化&am…

AlmaLinux上安装Docker

AlmaLinux上安装Docker 文章目录 AlmaLinux上安装Docker一、前言二、具体步骤1、Docker 下载更新系统包索引:添加Docker仓库:安装Docker引擎: 2、Docker服务启动启动Docker服务:设置Docker开机自启: 3、Docker 安装验证…

基于SSM的网络办公系统(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的网络办公系统(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring Spri…

mysql注入联合查询

环境搭建 下载复现漏洞的包 下载小皮面板 将下载好的文件解压在小皮面板的phpstudy_pro\WWW路径下 将这个文件phpstudy_pro\WWW\sqli-labs-php7-master\sql-connections\db-creds.inc 中的密码更改为小皮面板中的密码 选择php版本 在小皮中启动nginx和数据库 使用环回地址访…

java如何处理多线程异常

一、一个线程在执行过程中发生了异常会怎样? 那要看我们是否对这个异常进行了处理,如果处理了,那么线程会继续执行,如果没有处理,那么线程会释放掉自己所持有的锁,退出执行,如果这个线程是主线程…

linux 基于科大讯飞的文字转语音使用

官方文档地址:离线语音合成 Linux SDK 文档 | 讯飞开放平台文档中心 一、SDK下载 1、点击上面官方文档地址的链接,可以跳转到以下界面。 2、点击“普通版”,跳转到以下界面。 3、点击“下载”跳转到以下界面 4、最后,点击“SDK下…

电脑和手机连接酒店的wifi,网络不通导致charles无法抓手机的包

查看苹果手机,连wifi后的ip地址 电脑去ping 手机的ip地址,发现ping不通 解决方案: 应该是酒店wifi的问题,让朋友开个手机热点,电脑和我的手机都连这个热点,就可以抓包了

【vue2】路由之 Vue Router

文章目录 一、安装二、基础使用1、简单的示例2、动态路由2.1 定义动态路径参数2.2 获取动态路径的参数2.3 捕获所有路由 3、嵌套路由4、编程式的导航4.1 router.push4.2 router.replace4.3 router.go(n) 5、命名路由6、重定向 三、进阶1、导航守卫1.1 全局前置守卫1.2 全局后置…

日常学习之:vue + django + docker + heroku 对后端项目 / 前后端整体项目进行部署

文章目录 使用 docker 在 heroku 上单独部署 vue 前端使用 docker 在 heroku 上单独部署 django 后端创建 heroku 项目构建 Dockerfile设置 settings.pydatabase静态文件管理安全设置applicaiton & 中间件配置 设置 requirements.txtheroku container 部署应用 前后端分别部…

SpringBoot整合Xxl-Job实现异步任务调度中心

目录 一、下载 1、源码 2、项目结构 3、模块说明 二、部署任务调度中心 1、创建数据库xxl-job 2、配置数据库 3、启动admin模块 4、打开任务调度中心 三、SpringBoot整合xxl-job 1、导入依赖 2、配置yml文件 3、配置类 4、启动项目 5、任务配置 6、测试 一、下…

Windows 和 Anolis 通过 Docker 安装 Milvus 2.3.4

Windows 10 通过 Docker 安装 Milvus 2.3.4 一.Windows 安装 Docker二.Milvus 下载1.下载2.安装1.Windows 下安装(指定好Docker文件目录)2.Anolis下安装 三.数据库访问1.ATTU 客户端下载 一.Windows 安装 Docker Docker 下载 双击安装即可,安…

[嵌入式系统-5]:龙芯1B 开发学习套件 -2- LoongIDE 集成开发环境集成开发环境的安装步骤

目录 一、LoongIDE(龙芯开发工具集成环境)概述 1.1 概述 二、软件开发环境的安装过程 2.0 注意事项 2.1 步骤1:MingW运行环境 2.2 步骤2:安装LoongIDE 2.3 步骤3:安装MIPS工具链 2.4 配置工具链 2.5 重启电脑…

总结NB-IoT模块和单片机的区别

在学习了NB-IoT模块后,紧接着又学习了单片机系统,单片机和NB-IoT模块有什么不同之处呢,总结为以下几点。 大纲如图: 一、硬件层面 1、采用芯片不同, (1)封装:封装尺寸、方式不同&a…

Qt应用软件【串口篇】串口通信

文章目录 1.串口概述2.串口传输数据的基本原理电信号的传输过程 3.串口的几个概念数据位(Data Bits)奇偶校验位(Parity Bit)停止位(Stop Bits)流控制(Flow Control)波特率&#xff0…

第九篇【传奇开心果短博文系列】鸿蒙开发技术点案例示例:ArkUI强大的状态管理机制解读

传奇开心果短博文系列 系列短博文目录鸿蒙开发技术点案例示例系列 短博文目录一、前言二、ArkUI强大的状态管理机制介绍三、以官方helloworld示例为例说明ArkUI的状态定义和管理四、以官方 HelloWorld 示例代码为例说明ArkUI状态依赖和自动更新五、以官方helloworld示例代码为例…

PHP语法

#本来是在学命令执行,所以学了学,后来发现,PHP语法和命令执行的关系好像没有那么大,不如直接学php的一些命令执行函数了。# #但是还是更一下,毕竟还是很多地方都要求掌握php作为脚本语言,所以就学了前面的…

多维时序 | Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测

多维时序 | Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测 目录 多维时序 | Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预…

第四十一周:文献阅读+GAN存在的问题和改进

目录 摘要 Abstract 文献阅读:基于Transformer的时间序列生成对抗网络 现有问题 提出方法 相关前提 GAN(生成对抗网络) Transformer 方法论 时间序列处理 TTS-GAN (基于Transformer的时间序列生成对抗网络)…
最新文章