专栏首页AzMarkPython 学习之面向对象「下」

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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python学习之面向对象「 中 」

    Python技术与生活认知的分享
  • Python 学习笔记之类与实例

    类 (class) 封装一组相关数据,使之成为一个整体,并使用一种方法持续展示和维护。

    Python技术与生活认知的分享
  • Python学习之面向对象

    Python技术与生活认知的分享
  • python3–面向对象–类

    老七Linux
  • python 成员

    py3study
  • python高级之描述器

    py3study
  • python类之特殊属性和魔术方法

    1 实现 StaticMethod 装饰器,实现staticmethod的部分功能

    py3study
  • 面向对象:反射,双下方法

    反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应...

    changxin7
  • python高级-面向对象特性(12)

    在现实生活中,继承一般指的是子女继承父辈的财产,在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;同理,波斯猫...

    Se7eN_HOU
  • Python笔记

    import functools import operator mul2 = lambda x: 2 * x print(mul2(3)) pr...

    py3study

扫码关注云+社区

领取腾讯云代金券