python - 如何将东西放入 __init__(self):通过在变量中提供参数?
问题描述
所以,我基本上是在尝试编写一个代码,我想在声明期间声明参数,例如:
class emp:
def __init__(self,a,b):
self.first_name=a
self.last_name=b
Rohan=emp("Rohan","foo",age=12,nationality="Indian")
print(Rohan.age)
以下代码产生输出:
TypeError: __ init __() got an unexpected keyword argument 'age'
我想要的是:12
如果可能的话,我也可以将默认值放在以下代码产生的位置
Jhonny=emp(age=,nationality='')
jhony.age=5
jhony.nationality="Indian"
解决方案
如果您确定要这样做,可以执行以下操作:
class emp:
def __init__(self, a, b, **kwargs):
self.first_name = a
self.last_name = b
for key, val in kwargs.items():
setattr(self, key, val)
也就是说,这样做不是很好的做法。我同意将它们作为可选参数放在你的__init__
函数中会更好。
推荐阅读
- c++ - 两个随之而来的 std::chrono::high_resolution_clock::now() 给出了~270ns的差异
- networking - Google Compute Engine 实例的 GUI
- node.js - npm WARN 可选跳过可选依赖:fsevents@1.2.7
- linux - 如何在 Linux 中对不同行中的不同单词进行 Grep
- loops - 循环中的批处理循环
- angular - 从只读输入字段中获取值 - Angular
- java-bytecode-asm - what does # do after invokevirtual
- r - 如何在 R 中创建 URL 回调函数?
- powershell - cmdlet 到变量不被接受
- javascript - Jquery将自定义选项卡移动到下一个