python中创建实例属性
2016-11-08 15:06
411 查看
虽然可以通过Person类创建出xiaoming、xiaohong等实例,但是这些实例看上除了地址不同外,没有什么其他不同。在现实世界中,区分xiaoming、xiaohong要依靠他们各自的名字、性别、生日等属性。
如何让每个实例拥有各自不同的属性?由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值,例如,给xiaoming这个实例加上name、gender和birth属性:
给xiaohong加上的属性不一定要和xiaoming相同:
实例的属性可以像普通变量一样进行操作:
name 进行排序。
?不会了怎么办
sorted() 是高阶函数,接受一个比较函数。
参考代码:
sort 函数 形式是sort(list,key)list是列表 key表示比较方法重新构造方法
如何让每个实例拥有各自不同的属性?由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值,例如,给xiaoming这个实例加上name、gender和birth属性:
xiaoming = Person() xiaoming.name = 'Xiao Ming' xiaoming.gender = 'Male' xiaoming.birth = '1990-1-1'
给xiaohong加上的属性不一定要和xiaoming相同:
xiaohong = Person() xiaohong.name = 'Xiao Hong' xiaohong.school = 'No. 1 High School' xiaohong.grade = 2
实例的属性可以像普通变量一样进行操作:
xiaohong.grade = xiaohong.grade + 1
任务
请创建包含两个 Person 类的实例的 list,并给两个实例的 name 赋值,然后按照name 进行排序。
?不会了怎么办
sorted() 是高阶函数,接受一个比较函数。
参考代码:
class Person(object): pass p1 = Person() p1.name = 'Bart' p2 = Person() p2.name = 'Adam' p3 = Person() p3.name = 'Lisa' L1 = [p1, p2, p3] L2 = sorted(L1, lambda p1, p2: cmp(p1.name, p2.name)) print L2[0].name print L2[1].name print L2[2].name
sort 函数 形式是sort(list,key)list是列表 key表示比较方法重新构造方法
sorted 的写法是 一个list ,一个方法 cmp的方法经常用到
相关文章推荐
- python_笔记14_创建类的实例(支持多属性),方法也是属性
- python进阶学习笔记(四)——python中访问限制、创建类属性、定义实例方法、定义类方法、类的继承
- Python 面向对象编程基础(定义类并创建实例、创建实例属性、初始化实例属性、访问限制、类属性、属性名冲突、实例方法、类方法)
- python cookbook第三版学习笔记十二:类和对象(三)创建新的类或实例属性
- python进阶学习笔记(五)——创建实例属性、初始化实例属性
- 【Python】一个python实例:给重要的文件创建备份.摘自crossin-python简明教程
- python类的属性,实例的属性
- 一个程序理解python的类属性和实例属性(共有属性和私有属性的访问区别)
- Python类属性和实例属性
- Python——类属性/实例属性
- Python黑魔法系列之使用@property或__getattr__创建动态类属性
- python中类的学习:类属性,实例属性 __new__方法:单例模式
- Python的类实例属性访问规则
- python中类属性和类实例的属性的区别
- python的类属性和实例属性
- 【Python】学习笔记——-7.5、实例属性和类属性
- 创建python单例实例的装饰器
- Python基础-不要对实例属性和类属性使用相同的名字
- python实例编写(4)--js,滚动条,cookie,验证码,获取特定属性的元素,实现原理
- python类:class创建、数据方法属性及访问控制详解