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

相关文章

来自专栏技术小讲堂

iBatis.Net(2):基本概念与配置

写完第一篇,有朋友给我发邮件,说想让我配合实例写会不会更好一些,可是呢,我觉得这就相当于那些北大的什么鸟给无辜的孩子们吃快餐一样,我是坚决反对那样的,知其然不知...

2717
来自专栏Linux驱动

24.Linux-Nand Flash驱动(分析MTD层并制作NAND驱动)

1.本节使用的nand flash型号为K9F2G08U0M,它的命令如下: ? 1.1我们以上图的read id(读ID)为例,它的时序图如下: ? 首先需要...

24810
来自专栏xcywt

Linux进程间通信之管道

1,进程间通信 (IPC ) Inter-Process Communication   比较好理解概念的就是进程间通信就是在不同进程之间传播或交换信息。 2,...

1898
来自专栏刘望舒

Android系统启动流程(一)解析init进程

前言 作为“Android框架层”这个大系列中的第一个系列,我们首先要了解的是Android系统启动流程,在这个流程中会涉及到很多重要的知识点,这个系列我们就来...

1976
来自专栏大眼瞪小眼

程序与进程

昨天复习《深入理解计算机系统》,参考了小土刀的博客,看到了进程和程序在内存中是如何组织的,虽然这张图看了很多遍但是总感觉有疑问。努力解决,参考《深入理解计算机系...

713
来自专栏赵俊的Java专栏

使用 Python 操作 HDFS

1552
来自专栏老秦求学

DNS信息

主机A记录: 描述主机地址记录,在dns域名和ip地址之间建立映射关系语法: owner class ttl A IP_v4_address  eg: host...

35014
来自专栏纯洁的微笑

springboot(十八):使用Spring Boot集成FastDFS

上篇文章介绍了《如何使用Spring Boot上传文件》,这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中。 这个项目会...

3664
来自专栏java 成神之路

InetAddress 解析

3108
来自专栏伦少的博客

Spark读取压缩文件

73910

扫码关注云+社区