小编Chr*_*ris的帖子

Python 类属性及其初始化

我对 python 很陌生,在这些日子里我正在探索课程。我有一个关于类内部的属性和变量的问题:仅通过q=1在类的主体中定义属性与通过在类self.q=1内部定义有什么区别__init__?例如,以下两种可能性有什么区别?

class MyClass1:
    q=1
    def __init__(self,p):
        self.p=p
    def AddSomething(self,x):
        self.q = self.q+x
Run Code Online (Sandbox Code Playgroud)

class MyClass2:
    def __init__(self,p):
        self.q=1
        self.p=p
    def AddSomething(self,x):
        self.q = self.q+x
Run Code Online (Sandbox Code Playgroud)

例如的输出:

>>> my=MyClass1(2)
>>> my.p
2
>>> my.q
1
>>> my.AddSomething(7)
>>> my.q
8
Run Code Online (Sandbox Code Playgroud)

不取决于是否使用MyClass1或被MyClass2使用。inMyClass1和 inMyClass2都不会发生错误。

python attributes class

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

attributes ×1

class ×1

python ×1