如果有以下问题:我需要用Python编写一个名为filament的类。对象灯丝具有属性head
,还需要具有另外两个属性up
和down
。这是我所做的:
class filament(object):
def __init__(self, start):
self.head = start
head.up = 1
head.down = 1
fil = filament(1)
如果我运行它,我会得到:"NameError: name 'head' is not defined"
。
提前谢谢你!
发布于 2018-03-07 20:23:21
根据你的问题
你需要对象灯丝有
属性,它还需要有另外两个属性,'up‘和'down’。
为此,您可以创建一个具有up
和down
属性的类。就是像这样的东西。
class Head(object):
def __init__(self, *args):
self.up, self.down = args
class filament(object):
def __init__(self, start):
self.head = Head(1, 1)
fil = filament()
print(fil.head.up)
print(fil.head.down)
您也可以从collections
模块中使用namedtuple
来获得相同的行为。
from collections import namedtuple
Head = namedtuple('Head', ['up', 'down'])
class filament(object):
def __init__(self):
self.head = Head(1, 1)
fil = filament()
print(fil.head.up)
print(fil.head.down)
https://stackoverflow.com/questions/49151528
复制相似问题