数据:(姓名,姓别,年龄 ,分数)
形为:打印信息
'''
class Studons:
def __init__(self,name,xibie,nianling,fenshu):
self.name=name
self.xibie=xibie
self.nianling=nianling
self.fenshu=fenshu
def dayin(self):
print("姓名:%s,性别:%s,年龄:%d,分数:%d"%(self.name,self.xibie,self.nianling,self.fenshu))
list_stud_xi=[]
while True:
qr=input("y继续,n退出")
if qr=="y":
name=input("请输入学生姓名:")
xingbie = input("请输入学生性别:")
nianli=int(input("请输入学生年龄:"))
fenshu=int(input("请输入学生分数:"))
stu = Studons(name, xingbie, nianli, fenshu)#stu储存的是类变量数据。
list_stud_xi.append(stu)#列表元素是类变量数据。
else:
break
for str in list_stud_xi:
str.dayin()
one=list_stud_xi[0]
one.dayin()
one.name="李刚"
one.fenshu=78
print(one.name,one.fenshu)
9.3.3. 实例对象现在我们可以用实例对象作什么?实例对象唯一可用的操作就是属性引用。有两种有效的属性名。
数据属性 相当于 Smalltalk 中的“实例变量”或 C++ 中的“数据成员”。和局部变量一样,数据属性不需要声明,第一次使用时它们就会生成。例如,如果 x 是前面创建的 MyClass 实例,下面这段代码会打印出 16 而在堆栈中留下多余的东西:
x.counter = 1
while x.counter <10:
x.counter = x.counter * 2
print(x.counter)
del x.counter
另一种为实例对象所接受的引用属性是 方法。方法是“属于”一个对象的函数。(在 Python 中,方法不止是类实例所独有:其它类型的对象也可有方法。例如,链表对象有 append,insert,remove,sort 等等方法。然而,在后面的介绍中,除非特别说明,我们提到的方法特指类方法)
实例对象的有效名称依赖于它的类。按照定义,类中所有(用户定义)的函数对象对应它的实例中的方法。所以在我们的例子中,x.f 是一个有效的方法引用,因为 MyClass.f 是一个函数。但 x.i 不是,因为 MyClass.i 不是函数。不过 x.f 和 MyClass.f 不同,它是一个 方法对象 ,不是一个函数对象。