首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python初始化对象的属性

Python初始化对象的属性
EN

Stack Overflow用户
提问于 2018-03-07 20:05:33
回答 1查看 83关注 0票数 -2

如果有以下问题:我需要用Python编写一个名为filament的类。对象灯丝具有属性head,还需要具有另外两个属性updown。这是我所做的:

代码语言:javascript
复制
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"

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-07 20:23:21

根据你的问题

你需要对象灯丝有

属性,它还需要有另外两个属性,'up‘和'down’。

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

代码语言:javascript
复制
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来获得相同的行为。

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49151528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档