参考链接: Python中的类或静态变量

原文地址:https://www.cnblogs.com/20150705-yilushangyouni-Jacksu/p/6238187.html

Python-类变量,成员变量,静态变量,类方法,静态方法,实例方法,普通函数

#coding:utf-8

class class_name(object):

class_var = 'I am a class variable' #类变量

def __init__(self):

self.instance_var = 'I am a instance varibale'  #成员变量(实例变量)

def instance_method(self,  formal_parameter):

local_var_in_function = formal_parameter    #实例方法局部变量

self.local_var_also_in_function = formal_parameter  #实例方法局部变量

def ordinary_function(formal_parameter):

print "I am an ordinary function, I can't vist class var and intance var"

print self.instance_var #报错,因此普通函数无法访问成员函数

print clacc_var#报错,因此普通函数无法访问类变量

@classmethod

def class_method(cls, formal_parameter): #类方法

print 'I am class method, I can visit class var and instance var'

print 'I am class method, I am modifying the instance var'

cls.instance_var = formal_parameter

print cls.instance_var

print 'I am class method, I am modifying the class var'

class_var = formal_parameter

print class_var

@staticmethod

def static_method(formal_parameter):

print 'I am static method, I am the Adopted son(干儿子) for this class!!'

print "I can't modify anything in the class "

#print class_var

#print self.instance_var

print 'Get a class instance'

class_instance = class_name()

print '\r'

print "My name is class_instance, I can call class_method, " \

"statics_method, instance_method and instance_method, but I can't call ordinary_function"

print "I can show you:"

print '\r'

class_instance.class_method('class method is calling!!')

print '\r'

class_instance.static_method('static method in calling!!')

print '\r'

class_instance.instance_method('instance method is calling!!')

print '\r'

print 'class var is calling!!'

print class_instance.class_var

print '\r'

print 'instance var is calling!!'

print class_instance.instance_var

print '\r'

print 'Get a class!!'

print '\r'

print 'My name is class_name, I can call class_method, statics_method, instance_method, instance_method, and ordinary_function'

print "I can show you:"

print '\r'

class_name.class_method('class method is calling!!')

print '\r'

class_name.static_method('static method in calling!!')

print '\r'

#class_name.instance_method("instance method can't be calling!!")

print '\r'

print 'class var is calling!!'

print class_name.class_var

print '\r'

print 'instance var is calling!!'

print class_name.instance_var

print 'END!!'

Result:

Get a class instance

My name is class_instance, I can call class_method, statics_method, instance_method and instance_method, but I can't call ordinary_function I can show you:

I am class method, I can visit class var and instance var I am class method, I am modifying the instance var class method is calling!! I am class method, I am modifying the class var class method is calling!!

I am static method, I am the Adopted son(干儿子) for this class!! I can't modify anything in the class

class var is calling!! I am a class variable

instance var is calling!! I am a instance varibale

Get a class!!

My name is class_name, I can call class_method, statics_method, instance_method, instance_method, and ordinary_function I can show you:

I am class method, I can visit class var and instance var I am class method, I am modifying the instance var class method is calling!! I am class method, I am modifying the class var class method is calling!!

I am static method, I am the Adopted son(干儿子) for this class!! I can't modify anything in the class

class var is calling!! I am a class variable

instance var is calling!! class method is calling!! END!!

类变量:

        类定义内部定义的变量(愚见,可以认为类内部没有self开头定义的变量,可以认为是类变量)

e.g. class_name中的class_var = 'I am a class variable' #类变量

成员变量:

         类定义内部__init__函数内以self开头定义的变量

          

e.g. self.instance_var = 'I am a instance varibale'  #成员变量(实例变量)

静态变量:

          因为Python是动态语言,不存在完全静态的变量,这个概念查阅相关资料后认为指的就是类内部定义的类变量(欢迎指正)

类方法:

          类内部定义的以@classmethod装饰的函数是类方法,类方法的调用关系可以通过print后的表述得知。

e.g.

@classmethod

def class_method(cls, formal_parameter): #类方法

print 'I am class method, I can visit class var and instance var'

print 'I am class method, I am modifying the instance var'

cls.instance_var = formal_parameter

print cls.instance_var

print 'I am class method, I am modifying the class var'

class_var = formal_parameter

print class_var

静态方法:

          类内部定义的以@staticmethod装饰的函数,类方法的调用关系可以通过print后的表述得知。

e.g.

@staticmethod

def static_method(formal_parameter):

print 'I am static method, I am the Adopted son(干儿子) for this class!!'

print "I can't modify anything in the class "

#print class_var

#print self.instance_var

实例方法:

          类内部定义的没有装饰器且第一个参数为self的函数,类方法的调用关系可以通过print后的表述得知。

e.g.

def instance_method(self,  formal_parameter):

local_var_in_function = formal_parameter    #实例方法局部变量

self.local_var_also_in_function = formal_parameter  #实例方法局部变量

普通函数:

          类内部定义的既没有装饰器,也没有参数self的函数,类方法的调用关系可以通过print后的表述得知。

e.g.

def ordinary_function(formal_parameter):

print "I am an ordinary function, I can't vist class var and intance var"

print self.instance_var #报错,因此普通函数无法访问成员函数

print clacc_var#报错,因此普通函数无法访问类变量

[1]. http://www.cnblogs.com/kex1n/p/5979366.html

[2]. http://www.cnblogs.com/funfunny/p/5892212.html

[3]. http://blog.csdn.net/linda1000/article/details/8710161

[4]. http://blog.csdn.net/gzhouc/article/details/46785797

[5]. http://blog.csdn.net/xhw88398569/article/details/48976001

[6]. http://www.cnblogs.com/Simon-xm/p/3890942.html

[转载] Python-类变量,成员变量,静态变量,类方法,静态方法,实例方法,普通函数相关推荐

  1. java中类变量局部量_java入门---变量类型类变量局部变量实例变量静态变量

    在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: typeidentifier[= value][, identifier[= value]...]; 格式说明:type为Jav ...

  2. python 类变量修改_python中类变量与成员变量的使用注意点总结

    前言 最近在用python写一个项目,发现一个很恶心的bug,就是同由一个类生成的两个实例之间的数据竟然会相互影响,这让我非常不解.后来联想到java的类有类变量也有实例变量,因此翻阅了相关资料,发现 ...

  3. 【转载】wpf绑定全局静态变量并且实现变更通知(mvvm)

    这篇看了之后,很有启发,也很有用!,分享给大家 以下是转载内容. ---------------- 版权声明:本文为CSDN博主「returnTrue999」的原创文章,遵循CC 4.0 BY-SA版 ...

  4. java三大变量——静态变量、实例变量、局部变量

    文章目录 前言 一.java中变量分类 二.三者的区别与联系 1.静态变量.实例变量.局部变量区别 2.成员变量的两种细分类型的区别 总结 前言 变量是内存当中存储数据最基本的单元,将数据(字面量)放 ...

  5. Java 静态变量中包含变量,修改变量静态变量无法改变问题

    先描述下问题场景:接口地址中父类地址为可变地址,修改父类地址后发现接口地址未曾改变.: public class Init {private static String baseUrl = " ...

  6. python类变量与__init__声明变量的区别

    类变量:可在类的所有实例之间共享的变量 实例类对象:类的实例是调用类对象来创建的.如:par = Parent(),par就是类Parent的一个实例类对象. 实例变量(成员变量):同一个类对象可以创 ...

  7. java 静态变量加载顺序_java 成员变量 静态变量代码块 静态代码快加载顺序

    序言 基类A 类B继承实现了A类 1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B 3,装载父类A后 ...

  8. Python中必学知识点:类方法、实例方法和静态方法

    在面向对象编程中,类和实例是两个非常重要的概念,类是一个泛指的模型化的概念,如人员. 通过类可以创建实例,实例指某一个具体的对象,如张三. class Person(object): # 定义类 pa ...

  9. python是动态还是静态_python之静态方法和动态方法介绍

    这篇文章主要为大家深度剖析了python之静态方法和动态方法介绍的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下# -*- coding: utf-8 -*- ""&q ...

  10. 类变量、成员变量、实例变量、局部变量、静态变量、全局变量 的解释。

    类体由2部分构成: 一部分是变量的定义; 一部分是方法的定义(一个类中可以有多个方法) 在变量定义部分定义的变量叫做类的成员变量,成员变量在整个类中都有效. (全局变量应该是成员变量的俗称) 在方法体 ...

最新文章

  1. JavaSE基础之构造器(构造方法)和一般方法
  2. TypeError系列之:TypeError: conv2d(): argument 'input' (position 1) must be Tensor, not NoneType
  3. Ansible 一步一步从入门到精通(一)
  4. 程序员永远的痛之字符编码的奥秘
  5. Github上都没有的“网约车”项目,终于有人给写出来了!
  6. Openlayer 3 的画图测量面积
  7. 什么是 PID 控制算法 ?详解
  8. python写qq群自动回复机器人_GitHub - HZQHZA/wxpy: Python 写 微信聊天 根据 自动回复 接入机器人 等等.......
  9. 刘宇凡:新型鸡汤如何击溃传统鸡汤?
  10. win7事件查看器事件id_使用免费工具从事件查看器中查找事件ID
  11. java项目 无法重命名_项目重命名:出现的问题
  12. 2007年教育技术学专业硕士点招生简章
  13. Android面试分析一:关于OKhttp详解(附带视频教程,flutter游戏全屏
  14. java populate_BeanUtils.populate()的用法
  15. php 中文 无法写入 mysql_php数据库不能存入中文
  16. 微信公众号所有文章下载链接获取
  17. 全国省市二级json,带id
  18. 索尼美能达50微-版本区别及实拍测评(sony/minolta)50 f2.8 macro
  19. tableau制作人口金字塔图/旋风图
  20. 机器学习基础——分类算法之决策树、随机森林、Titanic乘客生存分类

热门文章

  1. 【codevs1073】家族
  2. 【NOIP2001】【Luogu1027】Car的旅行路线
  3. java面向对象的特征封装_Java总结-Java面向对象的基本特征之一:封装性
  4. docker java mysql_docker搭建tomcat+mysql容器并部署Java系统
  5. android 获取网卡mac_android 获取MAC地址
  6. activemq消息丢失_基于Redis实现消息队列的典型方案
  7. UnityShader33:GPU 实例化
  8. bzoj 1661: [Usaco2006 Nov]Big Square 巨大正方形(枚举)
  9. grafana设置mysql为数据源,并进行可视化
  10. 图像处理三:图像变形forward warping和inverse warping