Python打造微信机器人——黄勇老师直播回顾

http://www.abcplus.com.cn/course/57/activity/154/replay/4/entry

itchat库介绍

登录和给自己发送消息

好友

1、获取好友列表:

2、添加好友:

聊天消息

1、消息类型:

2、监听消息:

3、发送消息:

聊天室

1、获取聊天室:

2、创建聊天室:

3、添加成员到聊天室:

4、从聊天室中删除成员:

项目实战

1、 获取好友中性别比例:

通过获取好友列表,然后获取每个好友的性别,1代表的是男性,2代表的是女性,其他代表未知。那么就可以统计出你的微信好友中总共有多少个人,男性比例是多少,女性比例是多少。比较有意思,以下是个人微信统计出来的数据:

2、微信远程控制电脑:

用代码监听文本消息,如果监听到了特定的文字,那么就执行特定的操作。

3、群发消息:

获取所有好友信息,然后根据好友的备注名称,完成有姓名针对性的群发短信。这样别人看到的时候,带上了他的姓名,也就不认为这条短信是群发的了。

4、好友删除检测:

(a)你去拉一个好友进群,如果这个好友把你删掉了或者是拉黑了。那么你就不能拉这个好友进群了。

(b)你如果创建了一个群,但是你没有在这个群中说话,那么别人是不知道你创建了这个群的。

最后,昨天的互动题目,小伙伴们算出来了嘛?答案在这里哟~

题目回顾:以下代码的输出将是什么?

class Parent(object):

x = 1

class Child1(Parent):

pass

class Child2(Parent):

pass

print Parent.x, Child1.x, Child2.x

Child1.x = 2

print Parent.x, Child1.x, Child2.x

Parent.x = 3

print Parent.x, Child1.x, Child2.x

答案解析

1 1 1

1 2 1

3 2 3

小伙伴可能会困惑或是惊奇:

为什么最后一行的输出是 3 2 3 而不是 3 2 1?

为什么改变了 Parent.x 的值还会改变 Child2.x 的值,但是同时 Child1.x 值却没有改变?

这个答案的关键是,在 Python 中,类变量在内部是作为字典处理的。

如果一个变量的名字没有在当前类的字典中发现,将搜索祖先类(比如父类)直到被引用的变量名被找到(如果这个被引用的变量名既没有在自己所在的类又没有在祖先类中找到,会引发一个 AttributeError 异常)。

因此,在父类中设置 x = 1 会使得类变量 X 在引用该类和其任何子类中的值为 1。这就是因为第一个 print 语句的输出是 1 1 1。

随后,如果任何它的子类重写了该值(例如,我们执行语句 Child1.x = 2),然后,该值仅仅在子类中被改变。这就是为什么第二个 print 语句的输出是 1 2 1。

最后,如果该值在父类中被改变(例如,我们执行语句 Parent.x = 3),这个改变会影响到任何未重写该值的子类当中的值(在这个示例中被影响的子类是 Child2)。这就是为什么第三个 print 输出是 3 2 3。

PS:黄老师在昨晚直播中也对这个问题进行了演示和讲解,错过了直播,又对答案没有理解的同学可以再看一遍直播哟~

直播回放链接:

http://www.abcplus.com.cn/course/57/activity/154/replay/4/entry

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171219G0G7WP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券