21、Python中的继承、多线程学习

示例一:

# coding=utf-8


class Car(object):
    """一次模拟汽车的简单尝试"""
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_descriptive_name(self):
        long_name = str(self.year) + '' + self.make + '' + self.model
        return long_name.title()

    def read_odometer(self):
        print ("This car has" + str(self.odometer_reading))

    def update_odometer(self, mileage):
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print ("You can't roll back an odometer!")

    def increment_odometer(self, miles):
        self.odometer_reading += miles


class ElectricCar(Car):
    """电动车的独特之处"""
    def __init__(self, make, model, year):
        super(ElectricCar, self).__init__(make, model, year)


my_car = ElectricCar("tesla", "model s", 2016)
print my_car.get_descriptive_name()

示例二:

创建100个线程

# coding=utf-8

import threading


class MyThread(threading.Thread):

    def __init__(self, name=None):
        threading.Thread.__init__(self)
        # super(MyThread, self).__init__()
        self.name = name

    def run(self):
        print self.name


def test():
    for i in range(0, 100):
        t = MyThread("thread_" + str(i))
        t.start()


if __name__ == '__main__':
    test()

继承方式的第一种

def __init__(self, name=None):
    threading.Thread.__init__(self)
    self.name = name

继承方式的第二种,通过super关键字

def __init__(self, name=None):
    super(MyThread, self).__init__()
    self.name = name

示例三:多线程的学习

# coding=utf-8

from selenium import webdriver
import sys
from time import sleep
from threading import Thread

reload(sys)
sys.setdefaultencoding("utf-8")


def test_baidu_search(browser, url):
    driver = None
    if browser == "chrome":
        driver = webdriver.Chrome()
    elif browser == "ie":
        driver = webdriver.Ie()
    elif driver == "firefox":
        driver = webdriver.Firefox()

    if driver == None:
        exit()
    driver.get(url)
    sleep(3)
    driver.find_element_by_id("kw").send_keys("selenium")
    sleep(3)
    driver.find_element_by_id("su").click()
    driver.quit()


if __name__ == '__main__':
    data = {
        "chrome": "https://www.baidu.com",
        "firefox": "https://www.baidu.com",
        "ie": "https://www.baidu.com",
    }
    threads = []
    for b, url in data.items():
        """target是Thread对象中run调用的对象
           args 是目标调用的参数元组
        """
        t = Thread(target=test_baidu_search, args=(b, url))
        threads.append(t)

    for thr in threads:
        thr.start()
发布了30 篇原创文章 · 获赞 7 · 访问量 4709

猜你喜欢

转载自blog.csdn.net/qq969887453/article/details/90049575