3 回答
TA贡献1836条经验 获得超3个赞
您需要明确声明您接受一个name参数,然后您需要明确更新适当的属性:
class Sensor():
def __init__(self, name='pressure'):
self.name = name
请注意,我将'pressure'用作name参数的默认值,以防消费者不提供它:
a = Sensor()
print(a.name) # 'pressure'
b = Sensor(name='sensor')
print(b.name) # 'sensor'
name 也可以作为位置参数提供:
c = Sensor('some_name')
print(c.name) # 'some_name'
更通用的方法
还有一种更通用的方法(如果用例需要的话),它涉及动态创建属性:
class Sensor():
def __init__(self, **kwargs):
for attr, value in kwargs.items():
setattr(self, attr, value)
然后你可以做这样的事情:
d = Sensor(name='foo', temperature=70, active=True)
print(d.name) # 'foo'
print(d.temperature) # 70
print(d.active) # True
TA贡献1831条经验 获得超9个赞
不是那样的,如果你想设置属性,你必须做这样的事情:
class Sensor() :
def __init__(self, name='pressure') :
self.name = name
Sensor1 = Sensor(name='pH')
如果未提供名称,则名称将是pressure但如果名称在初始化中给出,它将设置为提供的名称。
TA贡献1794条经验 获得超7个赞
您需要提供一种方法来传递这些并设置默认值。在您的示例中,您只需要添加一个默认值。
class Sensor() :
def __init__(self,name='pressure') :
self.name = name
添加回答
举报