为了账号安全,请及时绑定邮箱和手机立即绑定

我们可以在python中使用点表示法访问类方法变量吗

我们可以在python中使用点表示法访问类方法变量吗

潇潇雨雨 2021-06-03 22:43:54
下面是代码import osclass ABC:    def test(self,name):        var = 5        var2 = 10        dic = {"Ada": "adada"}        print "asdfdsadv"        var1 = "Ada"        var2 = "asada"obj = ABC()print obj.test("Ada").var1我正在寻找这样的东西。我可以在 python 中实现这个吗我知道这是局部到类的 var 变量。有没有办法通过使用全局或其他东西来实现这一点
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

从类方法访问变量是不可能的,您必须在类级别设置变量,如下所示:


import os


class ABC:

    def test(self,name):

        var = 5

        var2 = 10

        dic = {"Ada": "adada"}

        print "asdfdsadv"

        self.var1 = "Ada"

        var2 = "asada"


obj = ABC()

obj.test('Ada')

print obj.var1

您可以通过将 self 返回到您的测试方法中,将 obj.test('Ada').var1 链接到同一行中。


查看完整回答
反对 回复 2021-06-09
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

我认为这会奏效。在初始化(个体经营)表现得像其他语言的构造函数。所以实际上我正在一个类中构建一个类,以使您的最后一行正常工作。但就像其他人建议的那样,这不是 Python 应该使用的方式。


import os


class ABC(object):

    def __init__(self):

        pass


    class test(object):

        def __init__(self,name):

            self.var = 5

            self.var2 = 10

            self.dic = {"Ada": "adada"}

            print ("asdfdsadv")

            self.var1 = "Ada"

            self.var2 = "asada"


if __name__ == "__main__":

    obj = ABC()

    print (obj.test("Ada").var1)


查看完整回答
反对 回复 2021-06-09
  • 3 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信