繁体   English   中英

Python初始化对象的属性

[英]Python initializing attributes of objcts

如果有以下问题:我需要在 Python 中编写一个名为 filament 的类。 对象细丝具有属性head ,还需要具有其他两个属性updown 这就是我所做的:

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"

先感谢您!

根据你的问题

您需要对象细丝具有属性头,还需要具有其他两个属性,“向上”和“向下”。

为此,您可以创建一个具有属性updown 即,像这样的东西。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM