python中cls和lfmillion
的不同及使⽤
⽂章⽬录
在讲正式内容之前,先讲⼀下背景知识
1.在类中不同⽅法
1. 静态⽅法
2. 类⽅法
3. 实例⽅法
这⾥就详细说⼀下类⽅法
类⽅法绑定到⼀个类⽽不是类的对象。这些⽅法可以在没有类的实例的情况下调⽤。我们可以使⽤classmethod()⽅法或装饰器@classmethod创建类⽅法。类⽅法接受cls作为参数,指⽰该⽅法指向类⽽不是对象实例。
class Sample:
var ="Class Variable"
@classmethod
def method(cls):
print(cls.var)
输出:
Class Variable
2.cls是什么
cls就表⽰此class的意思即Test,将cls⽤于类⽅法中,表⽰此⽅法属于类⽅法,如about(cls),可以调⽤类属性info
(ps:lf表⽰实例的意思,它们都是python中的关键字,改变命名并不会改变它们的功能。)
⼀个稍微复杂⼀点的实例是:
class Test:
info="this is the class 创造性思维的特点
storing name and score"#类属性
def__init__(lf,name,score):
lf.name=name
lf.score=score
def arch(lf):#实例⽅法
print(f"name:{lf.name},score:{lf.s怒江
c一年级上册口算题
ore}")
@classmethod
def about(cls):#类⽅法
print(cls.info)
@staticmethod
def method():#静态⽅法
print("this is a stactic method")
obj1=Test("alex",99)
obj1.arch()#must have ()#实例⽅法
Test.about()#类⽅法
输出
3.cls和lf的不同
cls指的是类,⽽ lf 指的是实例。使⽤cls关键字,我们只能访问类的成员,⽽使⽤ lf 关键字,我们可以访问实例变量和类属性。 使⽤cls,我们⽆法访问类中的实例变量。五花肉土豆片
cls作为参数传递给类⽅法,⽽ 老年斑如何治疗
lf 作为参数传递给实例⽅法。如果我们使⽤lf初始化变量,它们的作⽤域就是实例的作⽤域。但是,使⽤cls初始化的变量将类作为其作⽤域。
4.补充
cls()还可以调⽤实例⽅法,下⾯:
class A(object):
bar =1
def func1(lf):
print('foo')
@classmethod
def func2(cls):# 类⽅法
print('func2')
pr11月1号是什么星座
int(cls.bar)
cls().fu幼儿树叶手工
nc1()# 调⽤ foo ⽅法
A.func2()# 不需要实例化
输出:
func2
1
foo
其中cls().fun1()中的cls()相当于实例化钢铁侠叫什么
了对象,具体的原理等以后⽤到了我再深究吧
写在最后
(不知道我这样,花费这么多时间搞懂⼀个点有什么conqunce,我只知道我想弄清楚)