首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中创建和调用变量

在python中创建和调用变量
EN

Stack Overflow用户
提问于 2018-07-18 01:25:10
回答 2查看 61关注 0票数 0

我是python的新手,有一个简单的问题…在我的项目中有一个“学生”类,并且有一些学生对象(例如100):

代码语言:javascript
复制
class students:
    def __init__(self, name):
        self.name = name

这些学生中有一些是特殊的(例如五个),现在我想为这五个特殊学生中的每一个定义三个变量z0, z1, z2

代码语言:javascript
复制
for c in self.candidate_student:
   z0 
   z1 
   z2

在这一部分之后,我想按名称调用每个候选学生变量,如下所示:

代码语言:javascript
复制
student.name.z0
student.name.z1
student.name.z2

有人能解释一下我是如何做到这一点的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-18 02:07:50

如果您打算为每个“特殊”学生定义z0、z1和z2值,您可以将它们设置为对象实例的属性。注您可以在任何时候向对象添加新属性,它不一定要在__init__()方法中。例如,如果您正在创建一个新的“特殊学生”对象:

代码语言:javascript
复制
s = student("John Doe")
s.z0 = 7
s.z1 = 8
s.z2 = 9

现在,s只获得了三个新属性(除了在__init__中设置的name属性),在设置它们之后,您可以像变量一样对它们进行寻址。例如,在上面的后面:

代码语言:javascript
复制
print (s.name) # will print "John Doe"
print (s.z2) # will print 9

注如果你的代码同时处理“特殊”和“非特殊”对象,你应该预料到特殊属性并不总是在那里(所以如果你试图在一个事先没有设置的对象上使用student.z0,你会得到一个异常)。

票数 1
EN

Stack Overflow用户

发布于 2018-07-18 01:29:00

由于您希望向特殊学生添加属性,因此以下代码可能会有所帮助:

代码语言:javascript
复制
class students:
    def __init__(self, name, z=None):
        self.name = name
        self.z = z or []

你可以像这样初始化你的特殊学生:

代码语言:javascript
复制
ana = students('Ana', ['Apple', 'Ball', 'Pen'])

并像这样调用属性:

代码语言:javascript
复制
ana.z[0]
ana.z[1]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51387143

复制
相关文章

相似问题

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