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 条评论
登录 后参与评论

相关文章

来自专栏安恒网络空间安全讲武堂

从零基础到成功解题之0ctf-ezdoor

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

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

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

630
来自专栏木木玲

Netty 源码解析 ——— 服务端启动流程 (上)

2376
来自专栏分布式系统和大数据处理

.Net 项目代码风格参考

代码风格没有正确与否,重要的是整齐划一,这是我拟的一份《.Net 项目代码风格参考》,供大家参考。

1242
来自专栏FreeBuf

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

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

1917
来自专栏编程

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

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

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

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

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

3787
来自专栏坚毅的PHP

关于java

大整数10进制转16进制问题 google了都没什么好的解决方法,因为要转换的十进制有300多位,long都装不下,没有直接可用的函数可以拿来用 王总的方法分享...

3238
来自专栏腾讯云API

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

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

7482
来自专栏高爽的专栏

Hession反序列化导致CPU占用飙高

背景 今天发布一个线上服务,暂且称之为O,发布完后,依赖O服务的2个服务C和W大量Time报警,并且这两个服务的CPU占用都飙到了40%左右,平时只有10%的样...

3250

扫码关注云+社区