'''
一、插槽(slot)。
在类中使用__slots__来限制类属性的扩展。
例如:
'''
class A:
__slots__=['x','y'] #把类属性限制为x,y,两个属性。
pass
a=A()
a.x=3
print(a.x) #结果为3
#a.w=5 #错误
'''
3
Traceback (most recent call last):
File "python笔记.py", line 13, in <module>
a.w=5 #错误
AttributeError: 'A' object has no attribute 'w'
二、命名元组。
构建一个命名元组需要引入namedtuple模块,之后通过起一个名字描述它的属性。这将返回一个类似与类的对象,然后通过给予所需值实例化。
例如1:
'''
from collections import namedtuple
Tupler=namedtuple('Tupler','a b c')#定义命名元组
tup=Tupler(12,13,14) #实例化元组
print('a的值%s、b的值%s、c的值%s'%(tup.a,tup.b,tup.c))
'''
例二:
命名一个含有姓名、年龄、性别的命名元组:
'''
人=namedtuple('人','姓名 年龄 性别') #定义命名元组
工人=[ #实例化元组
人('张三',45,'男'),
人('李四',38,'男'),
人('王五',51,'男'),
人('二妮',18,'女'),
人('马六',43,'男'),
]
筛选结果={a.姓名 for a in 工人 if a.性别=='男'}
print('其中所有男人:',筛选结果)