首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python将属性从一个方法传递到另一个方法

Python将属性从一个方法传递到另一个方法
EN

Stack Overflow用户
提问于 2021-03-09 12:03:19
回答 1查看 23关注 0票数 0

我正在尝试将属性从一个方法传递到另一个方法,不确定如何将其他方法传递给另一个方法。在代码valuename和check_name下面是我希望通过printvalue方法传递和访问的两个属性。有什么想法吗?

代码语言:javascript
复制
class Load_dict(object):
    def __init__(self, data):
        for name, value in data.items():
            setattr(self, name, self._wrap(value) if (value is not None) else '')
    
    def _wrap(self, value):
        if isinstance(value, (tuple, list, set, frozenset)):
            return type(value)([self._wrap(v) for v in value])
        else:
            return Load_dict(value) if isinstance(value, dict) else value

    def delta(self):
        d= list(self.lived_state.split(','))
        return(d) 

    def gg(self):
        if 'IL' in self.delta():
            print(self.delta())
        else:
            print('not')

class load_process(Load_dict):
    def __init__(self, value):
        super().__init__(value)
    
    def display(self):
        self.valuename = 'hello'
        self.check_name = self.fname if self.Age > 30 else self.lname
        print('Check :  and lived State : {} and values - {}'.format( self.lived_state, self.Description.values))
    
    def printvalue(self):
        print(self.valuename)
        print(self.check_name)

d = {'fname':'John', 'lname': 'Burns', 'Age': 34, 'Gender': None, 'State' : 'CA', 'lived_state' : 'CA,TX,NY,FL'}
e = {'Code': 'Dev', 'Description' : {'name' : 'Development', 'environment' : 'dev11', 'node' : '', 'values' : ['222', '333', '444']}}
b = load_process({**d, **e})

print(b.delta())
b.printvalue()

错误

代码语言:javascript
复制
AttributeError: 'load_process' object has no attribute 'valuename'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-09 15:15:31

问题是您在b上调用printvalue时,b还没有初始化valuenamechecknameload_process类中唯一用于初始化valuenamecheck_name的代码在display.中。如果您想确保在调用printvalue之前已经初始化了valuenamecheck_name,那么您应该在load_process类的__init__方法中初始化这些属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66540649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档