广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python类(class)
  • 182
分享到

python类(class)

pythonclass 2023-01-30 21:01:40 182人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例,把所有相似的功能都封装到一个类里,最理想的情况是一个程序只有一个主程序,然后在程序里实例化类练习代码如下:# 

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例,把所有相似的功能都封装到一个类里,最理想的情况是一个程序只有一个主程序,然后在程序里实例化类

练习代码如下:

coding: utf-8
__author__ = 'www.py3study.com'
import os
import platfORM
import itertools
import time

class makepassowrd(object):
    def __init__(self):
        self.rawlist = []
        self.denylist = ['', ' ', '@']
        self.pwlist = []
        self.minlen = 6
        self.maxlen = 16
        self.timeout = 3
        self.flag = 0
        self.run = {
            '0': exit,
            '1': self.getrawlist,
            '2': self.aDDDenylist,
            '3': self.clearrawlist,
            '4': self.setrawlist,
            '5': self.modifypassWordlen,
            '6': self.createpasswordlist,
            '7': self.showpassword,
            '8': self.createpasswordfile
        }
        self.main()

    def main(self):
        while True:
            self.mainMenu()
            op = input(u'输入选项:')
            if op in map(str, range(len(self.run))):
                self.run.get(op)()
            else:
                self.tipMainMenuInputError()
                continue

    def mainMenu(self):
        self.clear()
        print(u'||')
        print(u'='*40)
        print(u'||')
        print(u'|| 0:退出程序')
        print(u'|| 1:输入密码原始字符')
        print(u'|| 2:添加非法字符到列表')
        print(u'|| 3:清空原始密码列表')
        print(u'|| 4:整理原始密码列表')
        print(u'|| 5:改变默认密码长度({}-{})'.format(self.minlen, self.maxlen))
        print(u'|| 6:创建密码列表')
        print(u'|| 7:显示所有密码')
        print(u'|| 8:创建字典文件')
        print(u'||')
        print(u'=' * 40)
        print(u'||')
        print(u'当前非法字符为: {}'.format(self.denylist))
        print(u'当前原始密码元素为: {}'.format(self.rawlist))
        print(u'共有密码{}个'.format(len(self.pwlist)))
        if self.flag:
            print(u'已在当前目录创建密码文件dict.txt')
        else:
            print(u'尚未创建密码文件')

    def clear(self):
        OS = platform.system()
        if (OS == u'windows'):
            os.system('cls')
        else:
            os.system('clear')

    def tipMainMenuInputError(self):
        self.clear()
        print(u'只能输入0-7的整数,等待{}秒后重新输入'.format(self.timeout))
        time.sleep(self.timeout)

    def getrawlist(self):
        self.clear()
        print(u'输入回车后直接退出')
        print(u'当前原始密码列表为:{}'.format(self.rawlist))
        st = None
        while not st == '':
            st = input("请输入密码元素字符串:")
            if st in self.denylist:
                print(u'这个字符串是预先设定的非法字符串')
                continue
            else:
                self.rawlist.append(st)
                self.clear()
                print(u'输入回车后直接退出')
                print(u'当前原始密码列表为:{}'.format(self.rawlist))

    def adddenylist(self):
        self.clear()
        print(u'输入回车后直接退出')
        print(u'当前非法字符为:{}'.format(self.denylist))
        st = None
        while not st == '':
            st = input(u'请输入需要添加的非法字符串:')
            self.denylist.append(st)
            self.clear()
            print(u'输入回车后直接退出')
            print(u'当前非法字符串为:{}'.format(self.denylist))

    def clearrawlist(self):
        self.rawlist = []

    def setrawlist(self):
        a = set(self.rawlist)
        b = set(self.denylist)
        self.rawlist = []
        for str in set(a - b):
            self.rawlist.append(str)

    def modifypasswordlen(self):
        self.clear()
        while True:
            print(u'当前密码长度为{}-{}'.format(self.minlen, self.maxlen))
            min = input('请输入密码最小长度:')
            max = input('请输入密码最大长度:')
            try:
                self.minlen = int(min)
                self.maxlen = int(max)
            except ValueError:
                print('密码长度只能输入数字[6-18]')
                break
            if self.minlen not in range(6,19) or self.maxlen not in range(6,19):
                print('密码长度只能输入数字[6-18]')
                self.minlen = 6
                self.maxlen = 16
                continue
            if self.minlen == self.maxlen:
                res = input(u'确定将密码长度设定为{}吗?(Yy/Nn):'.format(self.minlen))
                if res not in list('YyNn'):
                    print(u'输入错误,请重新输入')
                    continue
                elif res in list('Yy'):
                    print(u'好吧,你确定就好')
                    break
                else:
                    print(u'给个机会改一下吧')
                    continue
            elif self.minlen > self.maxlen:
                print(u'最小长度比最大长度还大,可能吗?请重新输入')
                self.minlen = 6
                self.maxlen = 16
                continue
            else:
                print(u'设置完毕,等待{}秒后回主菜单'.format(self.timeout))
                time.sleep(self.timeout)
                break

    def createpasswordlist(self):
        titlelist = []
        swapcaselist = []
        for st in self.rawlist:
            swapcaselist.append(st.swapcase())
            titlelist.append(st.title())
        sub1 = []
        sub2 = []
        for st in set(self.rawlist + titlelist + swapcaselist):
            sub1.append(st)
        for i in range(2, len(sub1) + 1):
            sub2 += list(itertools.permutations(sub1, i))
        for tup in sub2:
            PW = ''
            for subPW in tup:
                PW += subPW
            if len(PW) in range(self.minlen, self.maxlen + 1):
                self.pwlist.append(PW)
            else:
                pass

    def showpassword(self):
        for i in range(len(self.pwlist)):
            if i % 4 == 0:
                print("%s\n" % self.pwlist[i])
            else:
                print("%s\t" % self.pwlist[i])
        print('\n')
        print(u'等待{}秒,回到主菜单'.format(self.timeout))
        time.sleep(self.timeout)

    def createpasswordfile(self):
        print(u'当前目录下创建字典文件:dict.txt')
        time.sleep(self.timeout)
        with open('dict.txt', 'w+') as fp:
            for pw in self.pwlist:
                fp.write(pw)
                fp.write('\n')
        self.flag = 1

if __name__ == '__main__':
    mp = makepassowrd()

应该看到的结果blob.png

--结束END--

本文标题: python类(class)

本文链接: https://www.lsjlt.com/news/178898.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python类(class)
    类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例,把所有相似的功能都封装到一个类里,最理想的情况是一个程序只有一个主程序,然后在程序里实例化类练习代码如下:# ...
    99+
    2023-01-30
    python class
  • python Class(类) and
    Python类与面向对象    程序=指令+数据 (或算法+数据结构)。代码可以选择以指令为核心或以数据为核心进行编写。    两种类型        (1)以指令为核心:围绕“正在发生什么”进行编写(面向过程编程:程序具有一系列线性步骤;...
    99+
    2023-01-31
    python Class
  • python中class类怎么使用
    在Python中,我们可以使用class关键字来定义一个类。类是一种抽象的数据类型,用来定义对象的属性(成员变量)和行为(方法)。下...
    99+
    2023-09-14
    python
  • python Class:获取对象类型
    获取对象类型:一、type#!/usr/bin/env python3# -*- coding: utf-8 -*-class Animal(object):    def __init__(self, name, score):     ...
    99+
    2023-01-31
    对象 类型 python
  • Python中Class类用法实例分析
    本文实例讲述了Python中Class类用法。分享给大家供大家参考,具体如下: 尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一...
    99+
    2022-06-04
    实例 Python Class
  • Java反射(Class类,Class对象获取)
    目录Java反射超详解1.反射基础1.1Class类1.2类加载2.反射的使用2.1Class对象的获取 2.2Constructor类及其用法 2.3Field...
    99+
    2022-11-12
  • python之class类和方法怎么使用
    本篇内容主要讲解“python之class类和方法怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python之class类和方法怎么使用”吧!类和方法的概念和实例类(Class):用来描...
    99+
    2023-07-05
  • python class Object
     一:为什么要使用python的类对象编程?     我的理解:      1:便于维护、扩展代码。      2:更易于重复使用代码。 二:python 类对象编程代码如下: #创建firstClass类 class firstClas...
    99+
    2023-01-31
    python class Object
  • python中怎么利用class类实现可迭代
    今天就跟大家聊聊有关python中怎么利用class类实现可迭代,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 当定义一个普通的类时,指向类的实例默认情况下是不可迭代的,如下In&n...
    99+
    2023-06-01
  • AndroidStudio插件 - Json转Class、实体类(JSON To Kotlin Class)
    Kotlin用挺长时间了,最近网络请求时因为接收、解析实体类的问题,后台直接给到了json文件,客户端可直接将json转为对应的model,故此我们需要用到一些插件来提升工作效率 为了提升工作效...
    99+
    2023-09-10
    Android Kotlin Json转Class Json转实体类
  • python class用法
    创建一个名为 Restaurant 的类,其方法 __init__() 设置两个属性: name 和 type  1、创建一个名为 describe_restaurant() 的方法,前者打印前述两项信息 2、创建一个名为 open_re...
    99+
    2023-01-30
    python class
  • 前端JavaScript中的class类
    目录1、类1.1 constructor()1.2 getter和setter1.3 this1.4 静态属性1.5 静态方法2、继承2.1 super关键字2.2 _proto_和...
    99+
    2022-11-12
  • JavaScript中的class类详解
    目录类的基本语法类的继承类的静态方法类的优势和适用场景结论类的基本语法 在 JavaScript 中,使用 class 关键字可以定义一个新的类。类与传统的 Ja...
    99+
    2023-05-19
    JavaScript Class类 JS Class
  • TypeScript的class类怎么用
    本篇内容介绍了“TypeScript的class类怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!class 类类是面向对象语言的程序设...
    99+
    2023-06-29
  • java中Class类是什么
    java中Class类是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、说明Class本身也是一个类。Class对象只能由系统确定。JVM中只有一个Cla...
    99+
    2023-06-15
  • python中class类与方法的用法实例详解
    目录类和方法的概念和实例1.python类:class2.类的构造方法__init__()3.类中方法的参数self4.继承5.方法重写类的特殊属性与方法类的私有属性总结因为一直不太...
    99+
    2022-11-10
  • Java的Class类和Object类如何使用
    这篇文章主要介绍“Java的Class类和Object类如何使用”,在日常操作中,相信很多人在Java的Class类和Object类如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的Class类...
    99+
    2023-06-02
  • ES6的Class类怎么使用
    本篇内容介绍了“ES6的Class类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在ES6中,class (类)作为对象的模板被引入...
    99+
    2023-06-27
  • class类是不是es6语法
    本文小编为大家详细介绍“class类是不是es6语法”,内容详细,步骤清晰,细节处理妥当,希望这篇“class类是不是es6语法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。class类是es6语法,是es6新增...
    99+
    2023-07-04
  • java中Class类有什么用
    java中Class类有什么用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、说明Class本身也是一个类。Class对象只能由系统确定。JVM中只有一个Class实例可以加...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作