python创建实例中类属性的变化

Python (169) 2023-07-24 05:07:29

1、创建实例时,类属性不会成为实例属性。当为它们分配值时,它们成为实例属性。

实例化后没有给属性赋值;所以它仍然是一个类属性。在内部定义列表是__init__有效的,因为__init__在实例化后调用。或者,此代码也将产生所需的输出:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
>>>classa:
list=[]
>>>y=a()
>>>x=a()
>>>x.list=[]
>>>y.list=[]
>>>x.list.append(1)
>>>y.list.append(2)
>>>x.list.append(3)
>>>y.list.append(4)
>>>print(x.list)
[1,3]
>>>print(y.list)
[2,4]
>>>classa: list=[] >>>y=a() >>>x=a() >>>x.list=[] >>>y.list=[] >>>x.list.append(1) >>>y.list.append(2) >>>x.list.append(3) >>>y.list.append(4) >>>print(x.list) [1,3] >>>print(y.list) [2,4]
>>>classa:
list=[]

>>>y=a()
>>>x=a()
>>>x.list=[]
>>>y.list=[]
>>>x.list.append(1)
>>>y.list.append(2)
>>>x.list.append(3)
>>>y.list.append(4)
>>>print(x.list)
[1,3]
>>>print(y.list)
[2,4]

2、当且仅当在实例化后为它们分配值时,类属性才成为实例属性,__init__无论是否在方法中。

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
>>>classa:
string=''
>>>x=a()
>>>y=a()
>>>x.string+='x'
>>>y.string+='y'
>>>x.string
'x'
>>>y.string
'y'
>>>classa: string='' >>>x=a() >>>y=a() >>>x.string+='x' >>>y.string+='y' >>>x.string 'x' >>>y.string 'y'
>>>classa:
string=''


>>>x=a()
>>>y=a()
>>>x.string+='x'
>>>y.string+='y'
>>>x.string
'x'
>>>y.string
'y'

以上就是python创建实例中类属性的变化,希望对大家有所帮助。

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

THE END

发表回复