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 ...
随机推荐
- idea 常用快捷键 笔记
1. main方法 输入psv tab或回车 类似的 psf fori (for循环) sout 备注: 通过ctrl+j 可以查询 2. 删除当前行 ctrl + y 3. 复制当前行 ctrl ...
- JS实现小图放大轮播效果
JS实现小图放大轮播页面效果入下(图片为优行商旅页面照片): 实现效果:图片自动轮播,鼠标移入停止,移出继续轮播点击下方小图可以实现切换 步骤一:建立HTML布局,具体如下: <body> ...
- vlan配置命令
# 为VLAN10 指定一个描述字符串“connect to LAB1”.<Sysname> system-viewSystem View: return to User View wit ...
- 公司网络问题 & Caused by: org.gradle.internal.resource.transport.http.HttpRequestException
问题 公司网络问题,总是无法成功下载库,回到家就可以. Caused by: org.gradle.internal.resource.transport.http.HttpRequestExcept ...
- volley3--Volley类
Volley这个类,Volley作为整个框架的入口,其实就是创建了一个RequestQueue队列 public class Volley { /** * Default on-disk cache ...
- java多线程处理问题
今天碰到个以前的线上bug需要处理下:问题是这样的,我们的app里面有个点赞的功能,点赞完后显示点赞人列表以及点赞数量,但是数量现在总是不准确.之后查看代码,发现点赞时候只是简单的向数据库添加了一条点 ...
- Django Ajax的使用
简介: AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX ...
- Economy a Two-Edged Sword for Democrats
2017-05-03 12:05:07 https://www.usnews.com/news/blogs/ken-walshs-washington/2014/10/03/economy-a-two ...
- Shortest Paths
最短路径 APIs 带权有向图中的最短路径,这节讨论从源点(s)到图中其它点的最短路径(single source). Weighted Directed Edge API 需要新的数据类型来表示带权 ...
- Alpha 冲刺报告(1/10)
Alpha 冲刺报告 队名:洛基小队 峻雄(组长) 已完成:α版要完成的第一部分的游戏内容规划 明日计划:学习脚本教程,熟悉一下相关API 剩余任务:物品背包交互脚本 困难:对于JS脚本的不熟悉:如何 ...