Python 学习笔记(十四)Python类(三)

完善类的内容

示例:

 1 #! /usr/bin/env python
 2 # coding =utf-8
 3
 4 #通常类名首字母大写
 5 class Person(object):
 6
 7     """
 8     This is about a person  #类文档
 9     """
10
11     def __init__(self,name,lang="python"):#初始化函数,类被实例化的时候,要执行
12         self.name = name
13         self.lang = lang
14         self.email="[email protected]"
15
16
17     def getName(self): #定义一个方法,第一个参数必须是self,而且必须写上
18         return self.name
19
20     def color(self,col):
21         print "{0} is {1}".format(self.name,col)
22
23
24
25 p = Person("p1")
26 name = p.getName()
27 print name
28
29
30 cc =Person("cc")
31 cc_name =cc.getName()
32 print cc_name
33
34 cc.color("white")
35 p.color("blacl")
36
37 print p.lang
38 print cc.lang
39 print p.email
40 print cc.email

类属性和实例属性

 1 >>> class A(object):
 2     x =7
 3
 4
 5 >>> A.x  #x是类A 的属性,属于类属性
 6 7
 7 >>> foo =A() #将类实例化
 8 >>> foo.x    #x是实例foo的属性,叫实例属性
 9 7
10 >>> foo.x +=1 #给实例属性加1
11 >>> foo.x
12 8
13 >>> A.x   #类属性并没有因实例属性增加1,而发生变化
14 7对于实例属性foo.x +1 本质是又建立了一个属性,把原来的覆盖了实例属性不左右类属性。类属性不受实例属性的影响,实例属性会受到类属性的左右
15 >>> del foo.x  #删除实例属性
16 >>> foo.x    #显示原始的属性
17 7
18 >>> foo.y =foo.x+1 #把实例属性赋给新的实例属性
19 >>> foo.y  #新的实例属性发生变化
20 8
21 >>> foo.x #原始的实例属性没有发生变化
22 7
23 >>> A.x =A.x+1  #类属性加1,实例属性也发生了变化
24 >>> A.x
25 8
26 >>> foo.x
27 8
28 >>> class B(object):
29     y=[1,2,3]
30
31
32 >>> B.y
33 [1, 2, 3]
34 >>> bar =B()
35 >>> bar.y
36 [1, 2, 3]
37 >>> bar.y.append(4)
38 >>> bar.y
39 [1, 2, 3, 4]
40 >>> B.y
41 [1, 2, 3, 4]
42 >>> #特例:实例属性发生改变,类属性也发生了改变。属性为列表

原文地址:https://www.cnblogs.com/wangruihua-521/p/8569308.html

时间: 2024-10-22 16:57:04

Python 学习笔记(十四)Python类(三)的相关文章

python学习笔记(十四) - easy_install安装与使用

一. 背景知识 在使用python的时候,经常会使用到本身没有安装的第三方模块,这时我们就需要使用easy_install 二. 使用方法 1. 下载easy_setup.py的源代码:http://pypi.python.org/pypi/setuptools 2. 用记事本存放源码并命令为easy_setup.py 3. 双击运行或在命令行运行:python easy_setup.py 4. 在python的安装目录python\scripts目录中可以看到有好几个easy_install的

python学习笔记十二:类的定义

demo #!/usr/bin/python class Person: name = 'jim' age = 25 def say(self): print 'My name is ' + self.name + ', and age is ' + str(self.age) p = Person() p.say() print p.name

python学习笔记(十四): unittest

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 在说unittest之前,先说几个概念: TestCase 也就是测试用例 TestSuite 多个测试用例集合在一起,就是TestSuite TestLoader是用来加载TestCase到TestSuite中的 TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信

Python学习笔记整理(四)Python中的字符串..

字符串是一个有序的字符集合,用于存储和表现基于文本的信息. 常见的字符串常量和表达式 T1=‘’ 空字符串 T2="diege's" 双引号 T3="""...""" 三重引号块 T4=r'\temp\diege' Raw字符串 抑制(取消)转义,完全打印\tmp\diege,而没有制表符 T5=u’diege' Unicode字符串 T1+T2     合并 T1*3    重复 T2[i]    索引 T2[i:j] 分片

python学习笔记(十五) - python连接mysql数据库

一. 安装mysql驱动: 由于mysql服务器以独立的进程运行,并通过网络对外服务,所以,需要支持python的mysql驱动来连接mysql服务器. 安装驱动:easy_install mysql-connector-python 二. 连接数据库: 下面演示使用python代码连接mysql: #!/usr/bin/env python # -*- coding: utf-8 -*- # utility @ Python # 导入MySQL驱动: import mysql.connecto

python学习笔记十——异常处理

1.try: command except 错误类型,记录错误信息变量: command finally: command try...finally的用处是无论是否发生异常都要确保资源释放代码的执行.一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程.如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理.如下从几个细节讨论finally的特性. 1).try中的return: 当在try语句块中含有return语句

python学习笔记5:python读写文件

python学习笔记5:python读写文件 一.文件的打开模式 1.打开文件 1) f=open('D:\\a.txt','w') 第一个参数是文件的路径,如果只写文件的名字,默认是在当前执行目录下的文件:第二个参数是文件的打开模式 这种方式打开文件,在使用完了之后一定要记得,关闭文件: f.close() 2) with open('D:\\a.txt','w') as f 这种方式打开文件,文件在使用完后会自动关闭文件,不需要close  2. 文件的打开模式 总的来说,文件的打开模式有三

Swift学习笔记十四:构造(Initialization)

类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值.存储型属性的值不能处于一个未知的状态. 你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值.以下章节将详细介绍这两种方法. 注意: 当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers). 一.基本语法 class Human{ var name :String init(){ name = "human" } init(n

laravel3学习笔记(十四)

原作者博客:ieqi.net ==================================================================================================== 运行时配置 在 Laravel3 中很多地方我们都可以看到“约定大于配置”的影子,我本人也很喜欢这种工程哲学尤其是在框架领域,当然这并不能代替所有的配置.我们知道 Laravel3 中,主要配置都写在 application/config 文件夹下,在应用逻辑中,往往

python学习笔记1——安装python

python学习笔记1--安装python centos和ubuntu的python2.7的安装方法参考:http://daixuan.blog.51cto.com/5426657/1767325 1.查看当前python版本并且 [[email protected] ~]# python -V Python 2.6.6 2.安装eple-release扩展源 [[email protected] ~]# yum install -y epel-release 3.安装pip [[email p