1.初步创建
__author__ = 'zcy'
class PythonDemo:
pass
pers=PythonDemo() #创建一个一个对象的实例
pers.name="zhangsan"#添加一个属性
print pers.__dict__ #查看实例的属性
print pers.__class__.__dict__ #查看实例所在类的属性
pers.__class__.xiezi="red" #给类添加一个属性
print pers.__class__.__dict__
注:修改了一个类实例的属性后,当前类的其它实例的属性不会受到影响。若修改了类的属性,那么该类下,所以实例属性均受到影响
2.添加一个方法
# -*- coding: UTF-8 -*-
__author__ = 'zcy'
class woman:
def method(self):
print "必须的"
zcy=woman() #创建一个实例
zcy.method()
注:self 是必须的,所有方法中,第一个参数必须是它,代表所有实例共享它,不具备其他任何含义
3.隐藏属性和方法
class Persion:
def work(self):
print "我的工作是程序员"
Persion().work()
如果在work前加入__就会变成隐藏方法
<pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'Consolas';font-size:10.5pt;"><span style="color:#808080;"># -*- coding:UTF-8 -*-
</span>__author__ = <span style="color:#a5c261;">'zcy'
</span><span style="color:#a5c261;">
</span><span style="color:#cc7832;font-weight:bold;">class </span><span style="font-weight:bold;">Persion</span>:
<span style="color:#cc7832;font-weight:bold;">def </span><span style="font-weight:bold;">__work</span>(<span style="color:#94558d;">self</span>):
<span style="color:#cc7832;font-weight:bold;">print </span><span style="color:#a5c261;">"</span><span style="font-family:'宋体';color:#a5c261;">我的工作是程序员</span><span style="color:#a5c261;">"
</span>Persion().work()
#运行代码就会出现如下的错误
D:\Python27\python.exe D:/PycharmProjects/Persion.py
Traceback (most recent call last):
File "D:/PycharmProjects/Persion.py", line 7, in <module>
Persion().work()
AttributeError: Persion instance has no attribute 'work'
Process finished with exit code 1
4.类常见的一些专有方法
构造函数:
# -*- coding:UTF-8 -*-
__author__ = 'zcy'
class Persion:
def __work(self):
print "我的工作是程序员"
def __init__(self):
print "我是类的专有方法,我是自带的,只要创建实例,我就回运行"
Persion() #不需要再后面.int 就会运行
运行结果如下:
D:\Python27\python.exe D:/PycharmProjects/Persion.py
我是类的专有方法,我是自带的,只要创建实例,我就回运行
Process finished with exit code 0
析构函数__del__
# -*- coding:UTF-8 -*-
__author__ = 'zcy'
class Persion:
def work(self):
print "我的工作是程序员"
def __init__(self):
print "我是类的专有方法,我是自带的,只要创建实例,我就回运行"
def __del__(self):
print "我是最后运行的,对象生命周期结束了,我的删除对象善后"
Persion().work()
运行结果如下:
D:\Python27\python.exe D:/PycharmProjects/Persion.py
我是类的专有方法,我是自带的,只要创建实例,我就会运行
我的工作是程序员
我是最后运行的,对象生命周期结束了,我的删除对象善后
Process finished with exit code 0