python“静态”变量、实例变量与本地变量的声明示例
作者:weixin_42534940 发布时间:2021-11-16 23:17:28
标签:python,声明,变量
前言
虽然各种编程语言之间大部分语法存在共通的地方,但是在一些细节的处理上还是千差万别
才接触Python不久(之前是学Java的),实在想吐槽一下语言之间编码格式上的不统一问题,比如Java用分号分隔代码块,Python用空格,这无形之中增加了编码人员的学习成本
作为初学人员,还是老老实实记录一下学习过程中的坑:)
1. “静态”变量的声明
这里的静态变量是借用Java中静态变量的概念(不知道Python中的具体概念是什么),指既可以通过类名直接进行访问,也可以通过类的实例进行访问的变量。这种变量的声明很简单,直接在类代码块中设置变量即可,不需要任何关键字
Java中这样声明的变量是实例变量,只能通过对象实例进行访问
class Test:
# 这是一个“静态”变量
className = "Test"
2. 实例变量的声明
实例变量是指必须通过类的实例去访问的变量
实例变量的声明比较神奇,在任意的方法中,在变量名称前面加上“self.”,该变量就变成了实例变量。这样这个变量在其他的方法中也同样可以使用了(个人感觉有点奇葩啊有木有)
所以实例变量的声明有一点特别重要,如果该实例变量会做跨方法的使用,那么实例变量声明的方法一定要在实例变量使用的方法调用之前执行
def __init__(self):
# 这是一个实例变量
self.hello = Hello()
3. 本地变量的声明
本地变量是仅在类的方法中使用的变量
声明方法也很简单,直接在类的方法中定义变量即可
def who(self):
# 这是一个本地变量
name = "Cain"
return name
最后是一个完整的使用示例:
一个hello类:
class Hello:
def who(self):
# 这是一个本地变量
name = "Cain"
return name
一个Test类(其中会用到hello类):
# -*- coding:UTF-8 -*-
from hello import Hello
class Test:
# 这是一个“静态”变量
className = "Test"
def __init__(self):
# 这是一个实例变量
self.hello = Hello()
def sayName(self):
# 类的方法中访问实例变量
print("My name is " + self.hello.who())
if __name__ == "__main__":
test = Test()
test.sayName()
test1 = Test()
# 通过类名直接访问静态变量
print(Test.className)
# 通过实例名访问静态变量
print(test.className)
# 通过实例名访问实例变量
print(test.hello.who())
# 通过类名直接访问实例变量会报错!!!
# print(Test.hello.who())
来源:https://blog.csdn.net/weixin_42534940/article/details/80856767


猜你喜欢
- 统计每个库每个表的大小是数据治理的其中最简单的一个要求,本文将从抽样统计结果及精确统计结果两方面来统计MySQL的每个库每个表的数据量情况。
- 使用一个例子说明golang如何访问和修改json文件;主要分三步:从文件读入json串把json串转变成golang对象遍历或者修改jso
- mysql 获取规定时间段内的统计数据按年统计SELECT count(*), DATE_FORMAT(orde
- 前言网络上各大论坛,尤其是一些图片类型的网站上,在图片加载时均采用了一种名为懒加载的方式,具体表现为,当页面被请求时,只加载可视区域的图片,
- 本主题说明如何创建支持 FILESTREAM 的数据库。由于 FILESTREAM 使用一种特殊类型的文件组,因此,在创建数据库时,必须至少
- 单线程实现单线程实现道理比较简单,这里尝试Soket连接3389,连接成功说明端口开放,否则说明没有开远程服务。随便修改了一下就ok了,代码
- 本文实例讲述了Python实现简单的文本相似度分析操作。分享给大家供大家参考,具体如下:学习目标:1.利用gensim包分析文档相似度2.使
- 较新的pip已经支持list --outdated了,所以记录一下新的方法:pip list --outdated --format=leg
- CASSolution使用CAS作为认证协议。A作为主要的认证提供方(provider)。A保留用户系统,其余系统如xxx/www不保留用户
- 需要安装pywin32,pillow 依赖包#coding:utf-8import win32clipboard as clipimport
- 当我们重装系统,或者是重装数据库之后,当附加数据库之后,发现数据库里面 有用户名,但是在sqlserver里面没有 登陆名例如 先看&nb
- 本文介绍了Vue.js 常用模板语法,分享给大家,具体如下:一、文本渲染Vue支持动态渲染文本,即在修改属性的同时,实时渲染文本内容。同时为
- 本文主要讲如何不依赖TenserFlow等高级API实现一个简单的神经网络来做分类,所有的代码都在下面;在构造的数据(通过程序构造)上做了验
- 写桌面程序或有些特殊操作的,经常需要访问剪切板。python有专用的模块,可以很方便简单的操作剪切板如下:#coding:utf-8impo
- sql server中变量要先申明后赋值:局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的);申明局部变量语法:d
- 什么是Matplotlib?Matplotlib是Python中的一个库,用于创建静态和动态动画,并使用其内置函数绘制。它有很多内置特性和内
- 前言现在很多的直播平台或者视频平台都会用到弹幕加强和观众的互动效果,那么如何用JS实现这样的效果呢,用一个初学者的方法记录下这个方法,欢迎大
- 很久都没写 Flask 代码相关了,想想也真是惭愧,然并卵,这次还是不写 Flask 相关,不服你来打我啊(就这么贱,有本事咬我啊这次我来写
- Python 中常用的数据类型包括:数字类型:包括整型(int)、长整型(long)、浮点型(float)、复数型(comple
- 本文实例为大家分享了swiper Scrollbar滚动条组件的具体代码,供大家参考,具体内容如下1、scrollbar为Swiper增加滚