Python 学习之面向对象「下」

阅读文本大概需要 5 分钟

动态添加属性和方法

# 动态给实例添加属性和方法,不过只针对当前对象

from types import MethodType

class Person(object):

    pass

p = Person()

# 动态语言,动态添加属性和方法

p.name = "Mark"

def say(self):

    print(self.name)

say(p)


p.speak = say

p.speak(p)


p.speak = MethodType(say, p)

p.speak()

限制动态添加属性

# 在定义类的时候,定义一个特殊的属性(__slots__),可以限制动态添加的方法

class Person(object):

    # 限制实例的属性

    __slots__ = ("name", "age")

p = Person()

p.name = "Mark"

p.age = "23"

p.sex = "Man"  # 添加不了该属性

print(p.name, p.age)

多重继承

class Mother(object):

    def __init__(self, faceValue):
        self.faceValue = faceValue

    def eat(self):
        print("Mother eat something")

    def run(self):
        print("Mother just run")


class Father(object):

    def __init__(self, money):
        self.money = money

    def eat(self):
        print("Father eat something")

    def run(self):
        print("Father just run")


class Child(Father, Mother):
    def __init__(self, money, faceValue):
        Father.__init__(self, money)
        Mother.__init__(self, faceValue)

c = Child(10000, 99)
print(c.money,c.faceValue)

# 注意:方法名相同时,默认调用的是括号中排前面的父类中的方法
c.eat()
c.run()

给讨厌的人发一波骚扰短信

注册一个互亿无线账号,登陆后点击「 验证码通知短信 」,查看自己的 API 接口信息,复制保存起来,如下图所示:

点击上图右上角的「 文档中心 」,之后点击下载即可

将下载后的文件拖入到自己在 Pycharm 创建的一个文件中即可,点击 DEMO 中的 python 目录,拷贝里面的 sys.py 创建一个新的 py 文件,然后开始修改代码,注意编码格式的修改

需要修改的代码

import http.client  # 第 1 处 httplib 改为 http.client

# 第 2 处 输入自己之前保存的账号和密码

# 用户名是登录用户中心->验证码短信->产品总览->APIID
account = "C10257181"  # 自己的账号

# 密码 查看密码请登录用户中心->验证码短信->产品总览->APIKEY
password = "acd94d858de2966b11abda0e2d14****"  # 自己的密码


# 第 3 处 urllib.urlencode 改为下面的
    params = urllib.parse.urlencode

# 第 4 处 httplib 改为 http.client
conn = http.client.HTTPConnection(host, port=80, timeout=30)


# 第 5 处 填写手机号和改写验证码,注意只能改变 6 位数字
if __name__ == '__main__':
    mobile = "178********"
    text = "您的验证码是:950831。请不要把验证码泄露给其他人。"

    # 此处代码根据自己需求更改,不过免费的短信只有 10 条哦
    i = 0
    while i < 3:
        print(send_sms(text, mobile))
        i += 1 
        time.sleep(60)  # 需要自行导入 time 模块

原文发布于微信公众号 - Python梦工厂(AzMark950831)

原文发表时间:2018-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Kevin-ZhangCG

[ SSH框架 ] Struts2框架学习之二

  前面已经对 Struts2的流程已经执行完成了,但是如果表单中有参数如何进行接收又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习 Stru...

742
来自专栏运维一切

ceph对象存储折腾记 原

###前言 一直想弄对象存储,以前弄过一次,不是很理解region是个什么东西,后来时间和工作上的原因没有再折腾,这两天闲了下来,再次折腾了一次。我是参考的ce...

1311
来自专栏编程

看我是如何把SQLMap里的功能移植到我的程序的

不知道各位有没有听过不要重复造轮子?因为有些开源的工具,它们经过时间和众人的捶打,其实会比我们自己一个人造出来的轮子考虑的更加周到和全面。可是有时候有些开源工具...

19710
来自专栏腾讯云API

腾讯云API:用Python使用腾讯云API(机器翻译实例)

腾讯云API地址:https://cloud.tencent.com/document/api

1.2K2
来自专栏ChaMd5安全团队

CryptoShield勒索病毒分析

这篇文章主要分析一下Cryptoshield,来自于RITEST RIG EK的一个勒索病毒。病毒样本可以从这里得到: http://www.malware-t...

3665
来自专栏古时的风筝

用java开发微信公众号:公众号接入和access_token管理(二)

上一篇说了微信开发的准备工作,准备工作完成之后,就要开始步入正题了。其实微信公众号开发,说白了,就是要构造和发送http或https的请求组成,并根据请求的返回...

5126
来自专栏walterlv - 吕毅的博客

利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误

发布于 2018-03-20 11:54 更新于 2018-03...

770
来自专栏FreeBuf

如何把SQLMap里的功能移植到自己的程序中?

不知道各位有没有听过不要重复造轮子?因为有些开源的工具,它们经过时间和众人的捶打,其实会比我们自己一个人造出来的轮子考虑的更加周到和全面。可是有时候有些开源工具...

1997
来自专栏Danny的专栏

System.Data.SqlClient.SqlException: 将截断字符串或二进制数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

2214
来自专栏梧雨北辰的开发录

iOS面试知识总结之基本概念总结

凡经历过iOS面试的我们总会发觉,即使实际开发中做过许多项目,也难免为一个普通的面试题受挫。这也许不是因为我们技术不过关,而是因为在平时我们忽略了怎样将用到的知...

3957

扫码关注云+社区