A、语言优点
1.Python语言简单,更优雅,直观上来看,省略;和{},代码看上去更干净,易读,易理解
2.入手快,学习曲线低
3.解释性语言
4.丰富的第三方库
B、Python特性
1.解释性语言,速度相较于c,c++相对慢一些,由于现在硬件配置都非常高,基本上没有影响,除非一些实时性比较强的项目,会有一点影响,可嵌套c程序解决
2.强制缩进 对于新手来说不习惯,少缩进一个空格就会报错,特别是多个if嵌套还需要print的时候,整不好就bug了,习惯了会发现强制空格非常优雅
C、环境搭建
大多数的开发工具都大同小异,自己用起来顺手就ok.
目前没有用到虚拟环境,后续会切换到linux环境,也很想尝试Python三大神器之一virtualenv:
1.Pycharm类似于微软的VS系列产品风格,功能强大,安装第三方库以及断点调试都很方便
2.Sublime Text 界面优美,简洁
Python小程序:观察者模式实现
Python基本语法,自定义函数,基类定义,子类继承
# python实现观察者模式
#定义微信公众号接口
class WXPublisher(object):
def __init__(self):
pass
def register(self):
pass
def unregister(self):
pass
def notifyAll(self):
pass
#公众号实现类
class PublishSevice(WXPublisher):
def __init__(self,servicename):
self._listOfUsers = []
#帖子文章
self.postname = None
#服务号名称
self.servicenumber = servicename
#添加订阅者信息
def register(self,userObj):
if userObj not in self._listOfUsers:
self._listOfUsers.append(userObj)
#用户取消关注,取消订阅者
def unregister(self,userObj):
self._listOfUsers.remove(userObj)
#通知所有订阅者
def notifyAll(self):
for objects in self._listOfUsers:
objects.notify(self.postname)
#发布消息
def writeNewPost(self,postname):
print('微信服务号{}:{}'.format(self.servicenumber,postname))
self.postname = postname
self.notifyAll()
#定义订阅者接口
class Subscriber(object):
def __init__(self):
pass
#通知接口
def notify(self):
pass
#订阅用户1
class User1(Subscriber):
def __init__(self, username):
self.username = username
def notify(self,postname):
print('微信用户:{},接受到了帖子:{}'.format(self.username,postname))
#订阅用户2
class User2(Subscriber):
def __init__(self,username):
self.username = username
def notify(self,postname):
print('微信用户:{},接受到了帖子:{}'.format(self.username,postname))
#订阅用户3
class User3(Subscriber):
def __init__(self, username):
self.username = username
def notify(self,postname):
print('微信用户:{},接受到了帖子:{}'.format(self.username,postname))
#订阅用户4
class User4(Subscriber):
def __init__(self, username):
self.username = username
def notify(self,postname):
print('微信号:{},接受到了帖子:{},并阅读了帖子'.format(self.username,postname))
#程序入口
if __name__ == "__main__":
#微信服务号
travelsevice = PublishSevice("旅游小知识")
pythonsevice = PublishSevice("Python论坛")
#用户对象
user1 = User1('jack')
user2 = User2('marin')
user3 = User3('faker')
user4 = User4('huni')
#订阅旅游小知识公众号
travelsevice.register(user1)
travelsevice.register(user2)
travelsevice.register(user3)
travelsevice.register(user4)
#订阅Python论坛公帐号
pythonsevice.register(user1)
pythonsevice.register(user2)
pythonsevice.register(user3)
pythonsevice.register(user4)
#公众号发布文章通知所有订阅
travelsevice.writeNewPost("发布了迪士尼乐园游玩项目介绍")
#用户2取消订阅旅游知识号
travelsevice.unregister(user2)
#取消订阅的用户接收不到通知
travelsevice.writeNewPost("发布了一篇Python技术帖子")