类方法
class ClsMethod():objcnt1 = 0
@classmethod
def clsmeth1(cls):
cls.objcnt1 += 1
cnt1 = cls.getobjcnt() #类方法中通过cls访问类方法
cnt2 = ClsMethod.getobjcnt() # 类方法中通过列明访问类方法
@classmethod
defgetobjcnt(cls):
print('in getobjcnt(cls)')
return ClsMethod.objcnt1
def __init__(self):
ClsMethod.clsmeth1() # 实例方法中通过类名.方法名访问类方法
self.__class__.clsmeth1() # 实例方法中通过self.__class__.方法名访问类方法
>>> cm1 = ClsMethod()
in getobjcnt(cls)
in getobjcnt(cls)
in getobjcnt(cls)
in getobjcnt(cls)
实例化的时objcnt1为什么不被读取 本帖最后由 qiuyouzhi 于 2020-7-13 14:50 编辑
你的clsmeth1并没有打印结果,当然不会输出objcnt1
代码改成这样:
class ClsMethod():
objcnt1 = 0
@classmethod
def clsmeth1(cls):
cls.objcnt1 += 1
cnt1 = cls.getobjcnt() #类方法中通过cls访问类方法
cnt2 = ClsMethod.getobjcnt() # 类方法中通过列明访问类方法
return cnt2 # return cnt1也行
@classmethod
defgetobjcnt(cls):
print('in getobjcnt(cls)')
return ClsMethod.objcnt1
def __init__(self):
ClsMethod.clsmeth1() # 实例方法中通过类名.方法名访问类方法
self.__class__.clsmeth1() # 实例方法中通过self.__class__.方法名访问类方法 print打印?
qiuyouzhi 发表于 2020-7-13 14:48
你的clsmeth1并没有打印结果,当然不会输出objcnt1
代码改成这样:
一样的,也不打印objcnt1
代码不是执行到getobjcnt方法里的代码了吗,为什么不返回ClsMethod.objcnt1 白白白白丶白 发表于 2020-7-13 14:57
一样的,也不打印objcnt1
代码不是执行到getobjcnt方法里的代码了吗,为什么不返回ClsMethod.objcnt1
1,我这里就打印了?
2,你自己看看你写的clsmeth1:
@classmethod
def clsmeth1(cls):
cls.objcnt1 += 1
cnt1 = cls.getobjcnt() #类方法中通过cls访问类方法
cnt2 = ClsMethod.getobjcnt() # 类方法中通过列明访问类方法
有return或者print吗?一个都没有,能有结果才怪。 qiuyouzhi 发表于 2020-7-13 15:17
1,我这里就打印了?
2,你自己看看你写的clsmeth1:
getobjcnt 不是返回了ClsMethod.objcnt1
在clsmeth1里不是给 cnt1和cnt2赋值了getobjcnt()了嘛{:9_229:} 白白白白丶白 发表于 2020-7-13 15:45
getobjcnt 不是返回了ClsMethod.objcnt1
在clsmeth1里不是给 cnt1和cnt2赋值了getobjcnt()了嘛{:9_229 ...
那你打印他俩了吗??连return都没有 qiuyouzhi 发表于 2020-7-13 15:46
那你打印他俩了吗??连return都没有
{:9_241:}getobjcnt函数的返回值不会被赋值到cnt1和cnt2里面奥? 白白白白丶白 发表于 2020-7-13 15:52
getobjcnt函数的返回值不会被赋值到cnt1和cnt2里面奥?
会被赋值进去....可是赋值操作不包括输出啊 qiuyouzhi 发表于 2020-7-13 16:32
会被赋值进去....可是赋值操作不包括输出啊
好的把,谢谢 qiuyouzhi 发表于 2020-7-13 16:32
会被赋值进去....可是赋值操作不包括输出啊
>>> def a():
print('in a')
return 2
>>> x = a()
in a
>>> a()
in a
2
>>> x
2
>>> x
2
简单就是上面的情况呗, 白白白白丶白 发表于 2020-7-13 16:42
简单就是上面的情况呗,
蛤?没弄明白你想表达啥 qiuyouzhi 发表于 2020-7-13 16:43
蛤?没弄明白你想表达啥
那算了,当我没说,我 再看看这又弄函数里面了,
页:
[1]