[英]Python initializing attributes of objcts
如果有以下问题:我需要在 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"
。
先感谢您!
根据你的问题
您需要对象细丝具有属性头,还需要具有其他两个属性,“向上”和“向下”。
为此,您可以创建一个具有属性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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.