Python 学习笔记(十四)Python类(三)
完善类的内容
示例:
#! /usr/bin/env python
# coding =utf-8 #通常类名首字母大写
class Person(object): """
This is about a person #类文档
""" def __init__(self,name,lang="python"):#初始化函数,类被实例化的时候,要执行
self.name = name
self.lang = lang
self.email="cc@gmail.com" def getName(self): #定义一个方法,第一个参数必须是self,而且必须写上
return self.name def color(self,col):
print "{0} is {1}".format(self.name,col) p = Person("p1")
name = p.getName()
print name cc =Person("cc")
cc_name =cc.getName()
print cc_name cc.color("white")
p.color("blacl") print p.lang
print cc.lang
print p.email
print cc.email
类属性和实例属性
>>> class A(object):
x =7 >>> A.x #x是类A 的属性,属于类属性
7
>>> foo =A() #将类实例化
>>> foo.x #x是实例foo的属性,叫实例属性
7
>>> foo.x +=1 #给实例属性加1
>>> foo.x
8
>>> A.x #类属性并没有因实例属性增加1,而发生变化
7
对于实例属性foo.x +1 本质是又建立了一个属性,把原来的覆盖了
实例属性不左右类属性。
类属性不受实例属性的影响,实例属性会受到类属性的左右
>>> del foo.x #删除实例属性
>>> foo.x #显示原始的属性
7
>>> foo.y =foo.x+1 #把实例属性赋给新的实例属性
>>> foo.y #新的实例属性发生变化
8
>>> foo.x #原始的实例属性没有发生变化
7
>>> A.x =A.x+1 #类属性加1,实例属性也发生了变化
>>> A.x
8
>>> foo.x
8
>>> class B(object):
y=[1,2,3] >>> B.y
[1, 2, 3]
>>> bar =B()
>>> bar.y
[1, 2, 3]
>>> bar.y.append(4)
>>> bar.y
[1, 2, 3, 4]
>>> B.y
[1, 2, 3, 4]
>>>
#特例:实例属性发生改变,类属性也发生了改变。属性为列表
Python 学习笔记(十四)Python类(三)的更多相关文章
- python学习笔记(十四)python实现发邮件
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart u ...
- python cookbook第三版学习笔记十四:类和对象(五)代理类以及内存回收
代理类: 代理类的作用其实有继承有些类似,如果你想将某个实例的属性访问代理到内部另外一个实例中去,可以用继承也可以用代理.来看下代理的应用: class A: def spam(self,x) ...
- python 学习笔记十四 jQuery案例详解(进阶篇)
1.选择器和筛选器 案例1 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- python学习笔记(十 四)、web.py
使用web.py 通过python进行网页的编写,下面我们来简单了解一哈web.py 的使用 1 url处理 使用特定的url结构来解析我们发送的请求.如下面所示: urls = ( '/login' ...
- Python学习第十四篇——类初步使用及面向对象思想
class Restaurant(): def __init__(self,restaurant_name,cuisine_type): self.name = restaurant_name sel ...
- python学习笔记十四:wxPython Demo
一.简介 wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的.功能键全的GUI用户界面. wxPython是作为优秀的跨平台GUI库wxWidgets ...
- python学习笔记(十四): unittest
Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 在说unittest之前,先说几个概念: TestC ...
- python学习笔记十二:类的定义
demo #!/usr/bin/python class Person: name = 'jim' age = 25 def say(self): print 'My name is ' + self ...
- python 学习笔记(十四)有依赖关系的接口开发
接口开发中存在很多有依赖关系的接口,例如:BBS中发帖的时候就需要进行校验用户是否登录,那么此时发帖的接口就与用户登录接口有依赖关系.在发帖时就需要先获取用户的session,与当前登录用户进行校验对 ...
- Python学习笔记整理(四)Python中的字符串..
字符串是一个有序的字符集合,用于存储和表现基于文本的信息. 常见的字符串常量和表达式 T1=‘’ 空字符串 T2="diege's" 双引号 T3=""&quo ...
随机推荐
- 51NOD1965:奇怪的式子
传送门 拆开变成 \[\prod_{i=1}^{n}\sigma_0(i)^{\mu(i)}\prod_{i=1}^{n}\sigma_0(i)^{i}\] 考虑 \(\prod_{i=1}^{n}\ ...
- dsu on tree(CF600E Lomsat gelral)
题意 一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和. dsu on tree 用来解决子树问题 好像不能带修改?? 暴力做这个题,就是每次扫一遍子树统 ...
- Spring Data MongoDB 环境搭建
一.开发环境 spring版本:4.0.6.RELEASE spring-data-mongodb版本:1.4.1.RELEASE junit版本 4.11 maven版本:3.0.5 二.pom.x ...
- php中ip转int 并存储在mysql数据库
遇到一个问题,于是百度一下. 得到最佳答案 http://blog.163.com/metlive@126/blog/static/1026327120104232330131/ 如何将四个字 ...
- 对WebSocket技术的学习与探索(一)
WebSocket 简要介绍 WebSocket protocol 是HTML5一种新的协议. 它实现了浏览器与服务器全双工通信(full-duple). 一开始的握手需要借助HTTP请求完成. We ...
- 理解JMeter聚合报告(Aggregate Report)
Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”.今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅. 如果 ...
- 5 TensorFlow实战Google深度学习框架一书中的错误两处(交叉熵定义有误)
第一处: 书中62页定义的交叉熵函数定义有误,虽然这个所谓交叉熵的数值能够减少,但是是不能提升预测性能的,因为定义就错了. 我已经将预测过程可视化,直接将交叉熵改为我的,或者用原书的,就可以看到预测结 ...
- 使用button的open-type="getUserInfo"引导用户进行授权
https://blog.csdn.net/weixin_39602178/article/details/80295684 一. 前言 小程序官方文档,上面说明 > wx.getUserInf ...
- [转]实现Hive数据同步更新的shell脚本
引言: 上一篇文章<Sqoop1.4.4 实现将 Oracle10g 中的增量数据导入 Hive0.13.1 ,并更新Hive中的主表>http://www.linuxidc.com/Li ...
- python基础——操作系统简介
不同应用领域的主流操作系统 l 桌面操作系统 l 服务器操作系统 l 嵌入式操作系统 l 移动设备操作系统 桌面操作系统 Windows系列 用户群体很大 MacOS 适合于开发人员 Linu ...