关于类属性的调用,一般情况下,设置一个类属性,用类名可以调用,用实例对象也可以调用,而且这两者调用的结果应该是一样的,实际上,这两种结果有可能不一样,什么原因,我也不清楚:
代码解释:
首先建立一个非常简单的含有一个类属性yy的类BG,在类的INIT中,每当新建一个实例的时候就给yy加10,按道理以后每次类调用yy和实例调用yy的值应该是一样的,实际上大相径庭
当我建立一个run()的函数,用FOR循环建立实例对象30次,也不断的给yy加值,当yy大于100的时候,yy减去100,打印yy的时候,发现,不同的run函数,跑出来的yy值不一样
当运行RUN()时,结果不一样,请将四个RUN分开单独运行
望高手指点
class BG:
yy = 0
def __init__(self, speed):
BG.yy += speed
def run():
for x in range(30):
bg = BG(10)
if BG.yy > 100:
bg.yy = bg.yy - 100
print(bg.yy, end="*")
def run1():
for x in range(30):
bg = BG(10)
if BG.yy > 100:
bg.yy = bg.yy - 100
print(BG.yy, end="*")
def run2():
for x in range(30):
bg = BG(10)
if BG.yy > 100:
BG.yy = BG.yy - 100
print(bg.yy, end="*")
def run3():
for x in range(30):
bg = BG(10)
if BG.yy > 100:
BG.yy = BG.yy - 100
print(BG.yy, end="*")
run()
print("-----------")
run1()
print("-----------")
run2()
print("-----------")
run3()