600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > [转载] Python-类变量 成员变量 静态变量 类方法 静态方法 实例方法 普通函数

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

时间:2023-12-10 20:19:50

相关推荐

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

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

原文地址:/0705-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]. /kex1n/p/5979366.html

[2]. /funfunny/p/5892212.html

[3]. /linda1000/article/details/8710161

[4]. /gzhouc/article/details/46785797

[5]. /xhw88398569/article/details/48976001

[6]. /Simon-xm/p/3890942.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。