37,719
社区成员
发帖
与我相关
我的任务
分享
class MainEnum(Enum):
num = 1
abc = 2
pass
class Maindata:
num:int
def __init__(self):
self.num = 1000
self.abc = 1000
pass
def one(self,py:MainEnum):
print(py)
print(self.num)
pass
pass
main= Maindata()
main.one(MainEnum.num.name)
num
1000
self.__dict__[py] = self.__dict__[py] + 200
from enum import Enum
#该枚举供外部对接调用 防止输错属性名
class MainEnum(Enum):
num = 1
abc = 2
pass
class Maindata:
num: int
abc: int
def __init__(self):
self.num = 1000
self.abc = 2000
pass
def one(self, py: MainEnum):
print('传入的参数为'+py)
print('修改前的self.num为:',self.num)
#print(self.py) 我想让self.py变成self.num
setattr(self,py,getattr(self,py)+100) #这是可以实现的方法 但是不想用这种方式实现数据太多开销太大
print('修改后的self.num为:',self.num)
pass
pass
pass
main = Maindata()
main.one(MainEnum.num.name)
这是上诉代码的输出结果
传入的参数为num
修改前的self.num为: 1000
修改后的self.num为: 1100
class MainEnum():
from collections import namedtuple
_E = namedtuple('Enum', 'num abc')
Enum = _E(1, 2)
class Maindata:
num:int
def __init__(self):
self.num = 1000
self.abc = 1000
pass
def one(self,py:MainEnum):
print(py)
print(self.num)
pass
pass
main= Maindata()
main.one(MainEnum.Enum.abc)