pythoncls函数 pythonascll

python中的cls到底指的是什么,与self有什么区别普通的方法pythoncls函数 , 第一个参数需要是selfpythoncls函数,它表示一个具体的实例本身 。
如果用了staticmethod , 那么就可以无视这个self,而将这个方法当成一个普通的函数使用 。
而对于classmethod , 它的第一个参数不是self,是cls,它表示这个类本身 。
class A(object):
def foo1(self):
print "Hello",self
@staticmethod
def foo2():
print "hello"
@classmethod
def foo3(cls):
print "hello",cls
a = A()
a.foo1()#最常见的调用方式,但与下面的方式相同
Hello __main__.A object at 0x9f6abec
A.foo1(a)#这里传入实例a,相当于普通方法的self
Hello __main__.A object at 0x9f6abec
A.foo2()#这里,由于静态方法没有参数,故可以不传东西
hello
A.foo3()#这里,由于是类方法,因此,它的第一个参数为类本身 。
hello class '__main__.A'
A#可以看到,直接输入A , 与上面那种调用返回同样的信息 。
class '__main__.A'
python 类中的变量传递给类中的函数 为了把类中的变量传递给类中的函数pythoncls函数,pythoncls函数我们需要用到3个特定格式
① 第一个格式 @classmethod 的中文意思就是“类方法”,@classmethod声明了函数1是类方法,这样才能允许函数1使用类属性中的数据 。
② 第二个格式 cls 的意思是class的缩写 。如果类方法函数1想使用类属性(也就是类中的变量) , 就要写上cls为函数1的第一个参数,也就是把这个类作为参数传给自己,这样就能被允许使用类中的数据 。
③ 第三个格式是 cls.变量。类方法想使用类属性的时候,需要在这些变量名称前加上cls. 这就好比类方法和类之间的约法三章,所以但凡有任何格式错误都会报错 。
如果缺①,即缺了“@classmethod”,类方法就不能直接利用类中的属性,于是报错
什么时候使用python类cls方法cls是class的缩写 。
class A:
member = "this is a test."
def __init__(self):
pass
@classmethod
def Print1(cls):
#杩欎釜鏄被鏂规硶
print "print 1: ", cls.member
def Print2(self):
print "print 2: ", self.member
@classmethod
def Print3(paraTest):
print "print 3: ", paraTest.member
a = A()
A.Print1()#相当于Print1(A)
a.Print2()#相当于Print2(a),请注意@classmethod
A.Print3()
可以看出来 , python在通过“.”调用成员函数的时候 , 会将“.”前面的东西当作函数的第一个参数调用 。
而且pyhon并不关心我们把类的成员函数的第一个参数的名称是什么,我们可以用任意的名称,可以看Print3的定义就知道了 。
【pythoncls函数 pythonascll】关于pythoncls函数和pythonascll的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读