在Python OOP中,调用类变量时应使用self还是Class Name?

迈克尔·琼斯

我对OOP感到非常生锈。现在我的问题是,我将如何去调用类变量?

我知道要调用一个__init__变量,您将执行以下操作:

class HelloWorld:

    def __init__(self):
        self.hello = "Hello"

    def world(self):
        print self.hello + "World"

我该如何调用未在类中初始化的变量?以下哪项是正确的?

class HelloWorld:

    hello = "Hello"

    def world(self):
        #Do I use self?
        print self.hello + "World"
        #Do I use the class name?
        print HelloWorld.hello + "World"

我只是应该使用self类名还是感到困惑我看到的大多数示例都在使用self,但是Tutorials Point上的示例使用了类的名称。请详细说明,谢谢!

奥尔登

HelloWorld.hello不需要使用的实例HelloWorld在的所有实例中值都应相同的情况下,可以使用此方法HelloWorldself.hello属于实例,并且在的实例之间可能有所不同HelloWorld

编码

class HelloWorld:

    hello = "Hello"

    def __init__(self, text):
        self.hello = text

    def world(self):
        #Do I use self?
        print self.hello + "World"
        #Do I use the class name?
        print HelloWorld.hello + "World"

print HelloWorld.hello
print HelloWorld('Goodbye').hello

MyInstance = HelloWorld('Goodbye')
MyInstance.world()

输出

Hello
Goodbye
GoodbyeWorld
HelloWorld

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python __set_name__中的异常行为

如何在Python模块中定义__name__变量?

在Python中获取调用函数模块的__name__

python的__file __,__ name__和Object .__ class __.__ name__的Java等效项是什么?

如何通过在python的所有输出中添加name1.name 2 ....来改变输出

Python self [name] = value是什么意思?

Python-export_graphviz class_name类型错误

在Python中BeautifulSoup抓取itemprop =“ name”

在Python的BeatifulSoup中刮取itemprop =“ name”

在不使用python name.py和./name的情况下运行Python代码

如何在Powershell中使用short_command_name -args代替python program_name -args?

Python:定义类型或命名元组时使用name参数的原因

在类型提示中使用Type [class_name]而不是class_name时,python无法解析的属性引用

当从crontab运行python脚本时,__ name__是什么?

Python Pywinauto基于某些class_name的存在检测窗口

OOP-Python-如何在类中调用函数并避免由于self引起的参数丢失错误?

使用“ getElementsByTagName”在Python中获取标签<string name =“ ID”>

Python类变量名称与__name__

python name错误

使用python-multiprocessing与if __name__ =='__main__'相关的谜

使用变量时,python 2.7 string_name.find()函数始终返回-1

__name__如何在python装饰器中更改

python'NameError:name''未定义时出错'python 2.7.12

如何使用pudb调试“ python -m module_name”

Python语法中'NAME'的定义是什么

__name__ 与 __package__ 在 python 中

如何正确配置python 3的使用避免NameError: name '' is not defined

Python OOP Class Students 错误是a1.name type error str not callable

为什么python在定义时返回“NameError:name 'correct' is not defined?