python中创建实例属性

虽然可以通过Person类创建出xiaoming、xiaohong等实例,但是这些实例看上除了地址不同外,没有什么其他不同。在现实世界中,区分xiaoming、xiaohong要依靠他们各自的名字、性别、生日等属性。

如何让每个实例拥有各自不同的属性?由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值,例如,给xiaoming这个实例加上name、genderbirth属性:

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 进行排序。

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,key=lambda x:x.name)

print L2[0].name
print L2[1].name
print L2[2].name

原文地址:https://www.cnblogs.com/liuqingqing/p/8870726.html

时间: 2024-08-28 23:33:22

python中创建实例属性的相关文章

python中的实例属性和类属性

在python中,类属性和实例属性的区别是什么? 我认为是作用域的不同,实例对象可以访问类属性,类对象不可以访问实例属性.(类的概念本身就是作用域的概念,你不能让一只猫会飞,猫属于猫类,这一类都不会飞.所以“飞”这种方法,猫类不具有) 比如: class People(object): name = 'Tom' # 公有的类属性 __age = 12 # 私有的类属性 # 实例属性 def __init__(self,height): self.height = height p = Peopl

python中初始化实例属性

虽然我们可以自由地给一个实例绑定各种属性,但是,现实世界中,一种类型的实例应该拥有相同名字的属性.例如,Person类应该在创建的时候就拥有 name.gender 和 birth 属性,怎么办? 在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性: class Person(object): def __init__(self, name, gender, birth

python进阶三(面向对象编程基础)【3-1 python中创建类属型】

python中创建类属性 类是模板,而实例则是根据类创建的对象. 绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份. 定义类属性可以直接在 class 中定义: 1 class Person(object): 2 address = 'Earth' 3 def __init__(self, name): 4 self.na

python中创建和遍历二叉树

python创建和遍历二叉树,可以使用递归的方式,源代码如下: #!/usr/bin/python class node(): def __init__(self,k=None,l=None,r=None): self.key=k; self.left=l; self.right=r; def create(root): a=raw_input('enter a key:'); if a is '#': root=None; else: root=node(k=a); root.left=cre

python中的property属性

目录 1. 什么是property属性 2. 简单的实例 3. property属性的有两种方式 3.1 装饰器方式 3.2 类属性方式,创建值为property对象的类属性 4. property属性-应用 4.1. 私有属性添加getter和setter方法 4.2. 使用property升级getter和setter方法 4.3. 使用property取代getter和setter方法 1. 什么是property属性 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 # #

Python 面向对象和实例属性

一.三大编程范式 编程范式即编程的方法论,标识一种编程风格. 我们学习完Python语法后,就可以写python代码了,然后每个人写代码的风格不同,这些不同的风格就代表了不同的流派. 如果把python的基本语法比作无数的基本功,那么不同的编程风格就好比不同的武林门派. 虽然大家风格不同,但是都可以完成你的编程需求,Python是一门面向对象编程语言,但是到目前为止,你从未接触面向对象编程,然而你已经可以解决很多问题了,在Python中并没有人强制你使用哪一种固定的风格. 根本就没有什么门派是天

python中创建虚拟环境

# virtualenv 虚拟环境安装 pip install virtualenv # 创建虚拟环境        virtualenv [虚拟环境名称] # 进入虚拟环境 windows : 进入虚拟环境的scripts文件夹中,然后执行activate *unix : source/path/to/vityualenv/bin/activate # 退出虚拟环境 deactivate # 创建虚拟环境的时候指定python的解释器 virtualenv -p .exe文件路径 # virt

关于在openstack中创建实例时任务一直卡在Building的现象描述

单位有一个小型的使用OpenStack搭建的私有云平台,昨天在使用Horizon创建一个实例时,发现该实例创建失败,任务状态一直显示为Building,随后可以在分配给该实例的计算节点上的compute.log中发现如下信息: compute.log:2015-06-08 16:23:17 WARNING nova.compute.manager [-] Found 4 in the database and 3 on the hypervisor.compute.log:2015-06-08

Python 中 创建类方法为什么要加self

Python的类方法和普通的函数有一个明显的区别,在类的方法必须有一个额外的第一个参数(self),但在调用这个方法的时候不必为这个参数数值(显胜于隐的引发).在Python的类方法中这个特别的参数指代是对象本身.而按照Python的惯例,它用self来表示(也可那以用其他任何名称来代替,只是 规范和标准建议一致使用self) 注:self在Python里不是关键字,self代表当前对象的地址,self能避免非限定调用的全局变量.