Python 学习笔记(十四)Python类(三)
2024-08-29 16:48:24
完善类的内容
示例:
#! /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]
>>>
#特例:实例属性发生改变,类属性也发生了改变。属性为列表
最新文章
- VMware虚拟机12安装linux系统
- 一些好的python IDE
- Python之路【第六篇】:面向对象编程相关
- Storm集群部署
- HDU 5862(离散化+树状数组)
- VC 三点 划 曲线
- (step 4.3.5)hdu 1035(Robot Motion——DFS)
- 关于Ajax的实现
- 属性动画(Property Animation)
- 2017年学习的三个CSS新特性
- Angular4.0从入门到实战打造在线竞拍网站学习笔记之三--依赖注入
- 使用JavaScript实现ATM取款机
- ES6,Array.includes()函数的用法
- Hive 配置
- JS中各种宽度距离小结
- ubuntu 配置apt-get源
- linux怎么实时查看目录下是否有文件生成
- python logging 日志轮转文件不删除问题的解决方法
- T-4-java核心API-集合类
- 在vue项目中使用axios发送FormData
热门文章
- C#-创建并添加TXT文件
- Rabbitmq安装报错 Windows下安装RabbitMQ报错Error: unable to connect to node rabbit@xxx: nodedown
- Redis Windows环境启动
- Taro 是一套遵
- maven-windows使用
- 一些baidu面经
- byr面经两则
- 浅析Linux操作系统是如何工作的(思维导图)
- 乘风破浪:LeetCode真题_017_Letter Combinations of a Phone Number
- Nginx配置文件nginx.conf详细说明文档