如果出现以下问题:我需要在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"
。
提前谢谢!
答案 0 :(得分:2)
根据您的问题
你需要对象灯丝有属性头,那也需要 其他两个属性,“向上”和“向下”。
为此,您可以创建一个包含属性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)
您还可以使用namedtuple
模块中的collections
来获得相同的行为。
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)