完善类的内容

示例:

 #! /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]
>>>
#特例:实例属性发生改变,类属性也发生了改变。属性为列表

最新文章

  1. VMware虚拟机12安装linux系统
  2. 一些好的python IDE
  3. Python之路【第六篇】:面向对象编程相关
  4. Storm集群部署
  5. HDU 5862(离散化+树状数组)
  6. VC 三点 划 曲线
  7. (step 4.3.5)hdu 1035(Robot Motion——DFS)
  8. 关于Ajax的实现
  9. 属性动画(Property Animation)
  10. 2017年学习的三个CSS新特性
  11. Angular4.0从入门到实战打造在线竞拍网站学习笔记之三--依赖注入
  12. 使用JavaScript实现ATM取款机
  13. ES6,Array.includes()函数的用法
  14. Hive 配置
  15. JS中各种宽度距离小结
  16. ubuntu 配置apt-get源
  17. linux怎么实时查看目录下是否有文件生成
  18. python logging 日志轮转文件不删除问题的解决方法
  19. T-4-java核心API-集合类
  20. 在vue项目中使用axios发送FormData

热门文章

  1. C#-创建并添加TXT文件
  2. Rabbitmq安装报错 Windows下安装RabbitMQ报错Error: unable to connect to node rabbit@xxx: nodedown
  3. Redis Windows环境启动
  4. Taro 是一套遵
  5. maven-windows使用
  6. 一些baidu面经
  7. byr面经两则
  8. 浅析Linux操作系统是如何工作的(思维导图)
  9. 乘风破浪:LeetCode真题_017_Letter Combinations of a Phone Number
  10. Nginx配置文件nginx.conf详细说明文档