Ls雷 发表于 2018-3-30 23:55

python实现使用线程取钱caozuo

本帖最后由 Ls雷 于 2018-3-30 23:57 编辑

import os
from multiprocessing import Process
import time
import random



# 创建银行类
class Bank(object):
    def __init__(self, money):
      self.money = money

    # 存钱方法
    def save_money(self, money):
      for i in range(10):
            num = random.randint(0, 100)
            if num % 2 == 0:
                self.money += money
                print("存了%d元,当前余额:%d元" % (money, self.money))
            else:
                bank.get_money(1000)

    # 取钱方法
    def get_money(self, money):
      if money > self.money:
            print("余额不足")
      else:
            self.money -= money
            print("取了%d元,现余额:%d" % (money, self.money))


if __name__ == "__main__":
    bank = Bank(10000)
    save = int(input("请输入存的钱数:"))
    get = int(input("请输入取的钱数:"))
    g = Process(target=bank.save_money, args=(save,))
    p = Process(target=bank.get_money, args=(get,))

    g.start()
    g.join()
    time.sleep(1)
    print("完成操作")

纸条 发表于 2018-3-31 00:50

楼主,源代码我下载执行了,就是不知道这个钱是打我支付宝马?{:301_997:}

Ls雷 发表于 2018-3-31 01:05

纸条 发表于 2018-3-31 00:50
楼主,源代码我下载执行了,就是不知道这个钱是打我支付宝马?

阔以阔以直接入账,hhh

sitiger 发表于 2018-5-7 10:22

看了一下,貌似有几个错误:
line21:bank没定义吧?是不是准备写self的?
line38:p进程没执行?
存钱方法中:
    for,random干嘛用的,与实际理解存钱不符啊

Ls雷 发表于 2018-10-10 00:06

sitiger 发表于 2018-5-7 10:22
看了一下,貌似有几个错误:
line21:bank没定义吧?是不是准备写self的?
line38:p进程没执行?


请参照 __name__ == "__main__"做出回答

sitiger 发表于 2018-10-10 16:11

本帖最后由 sitiger 于 2018-10-10 16:39 编辑

Ls雷 发表于 2018-10-10 00:06
请参照 __name__ == "__main__"做出回答
你是直接将特定实例化的对象放到类内部么?那这个程序还有通用性么,也就是如果没有实例化对象bank时,其他实例化对象引用不到bank时不就崩溃了么?

Ls雷 发表于 2018-10-10 17:41

sitiger 发表于 2018-5-7 10:22
看了一下,貌似有几个错误:
line21:bank没定义吧?是不是准备写self的?
line38:p进程没执行?


的确是我没有写call方法就是随手写的一个小程序

流星的孤单 发表于 2018-10-11 08:32

路过,顶一个

小黑LLB 发表于 2019-2-12 14:56

代码拿来观摩一波 支持一下 {:1_921:}
页: [1]
查看完整版本: python实现使用线程取钱caozuo