类实战
时间:2021-08-17
本文章向大家介绍类实战,主要包括类实战使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
class Person(object): city = '西安市' def __init__(self, name, age): print('开始执行') self.name = name self.age = age def show(self): print('my name is {0},and my age is {1},{2}'.format(self.name, self.age, self.city)) @property def info(self): print('特性方法:属于对象,编写特性方法') @staticmethod def Jt(): print('静态方法:属于类,使用类名调用') @classmethod def admin(cls): print('类方法:属于类,使用类名调用') objPerson = Person(name='admin', age=18) # 普通方法 objPerson.show() objPerson.info # 特性方法 Person(name='admin', age=18).Jt() # 静态方法 Person(name='admin', age=18).admin() # 类方法
class Login(object): def __init__(self, username, password): self.username = username self.password = password def login(self, nike): if self.username == 'admin' and self.password == 'admin': print('我的昵称是:{0}'.format(nike)) return 'wertyudf' else: print('你的账户或密码错误') def Profile(self, token): if token == 'wertyudf': print('显示具体主页内容') else: print('请登录') def func(self, *args, **kwargs): print(args, kwargs) objLogin = Login(username='admin', password='admin') objLogin.Profile(token=objLogin.login(nike='星德川')) objLogin.func(name='admin', nike='星德川', age=18, address='tectivirus') # java单继承,python多继承
# !/usr/bin/env python # -*- coding:utf-8 -*- class Person(object): def __init__(self, name, age): self.name = name self.age = age def show(self): print('name is {0},age is {1}'.format(self.name, self.age)) class Work(Person): def __init__(self, name, age, salary): # super()的方法继承父类的实例属性 # super().__init__(name, age) Person.__init__(self, name, age) self.salary = salary def show(self): print('name is {0},age is {1},salary {2}'.format(self.name, self.age, self.salary)) objPerson = Work(name='admin', age=19, salary=1000.1) objPerson.show() ''' 父类:基类 子类:派生类 当子类重写父类的方法,子类实例化后调用父类的方法 继承原则: 前提:单继承 原则:实例化子类,子类对象调用的方法和父类方法重名,优先考虑子类 '''
class Father(object): def show(self): print('A') class Mother(object): def show(self): print('a') class Son(Father, Mother): # pass def show(self): print('b') son = Son() son.show() ''' 从左到右原则: 前提:继承多个父类,子类没有重写父类方法 执行结果:实例化子类后调用父类方法,查询顺序从左至右,直到找到符合要求的 从上到下原则: 前提:继承多个父类,子类重写父类方法 执行结果:实例化子类后,调用具体方法,优先考虑子类 ''' class Person(object): def __init__(self, name, age): self.name = name self.age = age class Student(Person): def __init__(self, name, age, score): super().__init__(name, age) # Person.__init__(self,name,age) self.score = score class TestWork(Student): def __init__(self, name, age, score, salary): super().__init__(name, age, score) self.salary = salary def info(self): print('name:{0},age:{1},score:{2},salary:{3}'.format(self.name, self.age, self.score, self.salary)) obj = TestWork(name='admin', age=18, score=90, salary=111.1) obj.info()
class Person(object): def info(self): print('a') def info(self, name): print('b', name) def info(self, name, age): print('c', name, age) class Father(Person): pass class Son(Father): pass ''' Python中,基于MRO的解析顺序规则,从左到右开始查找基类,直到查找到符合要求的为止。 MRO其实就是通过一个C3线性化算法来实现的,它的核心思想为: 子类会优先于父类检查 多个父类会根据它们在列表中的顺序被依次检查 如果对下一个类存在两个合法的选择,只能选择第一个 ''' print(Son.mro()) Son().info(name='admin',age='19')
import json import sys class Actual(object): def out(self): username = input('请输入用户名\n') password = input('请输入密码\n') return username, password def register(self): username, password = self.out() temp = username + "|" + password json.dump(temp, open('user.md', 'w')) def login(self): username, password = self.out() list = str(json.load(open('user.md'))).split('|') if username == list[0] and password == list[1]: return True else: print('请检查你的账户或密码') def profile(self): list = str(json.load(open('user.md'))).split('|') if self.login(): print('欢迎{0}'.format(list[0])) def main(self): while True: try: f = int(input('1、注册 2、登录 3、查看主页 4、退出\n')) if f == 1: self.register() elif f == 2: self.login() elif f == 3: self.profile() elif f == 4: exit(0) else: continue except Exception as e: continue if __name__ == '__main__': obj = Actual() obj.main()
原文地址:https://www.cnblogs.com/xdcjk/p/15152880.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 代码详解——NMPC路径跟踪复杂参考路径设置
- 代码详解——NMPC之加入控制平顺性惩罚项
- 代码详解——采用控制增量作为控制输入的NMPC路径跟踪
- 程序员进阶系列:年少不懂爱家家,懂了已是猿中人。
- 代码详解——Simulink中的运动学模型
- Spring Boot 特性之 Failure Analysis
- 「周末福报」头铁的我,一头扎进了知识盲区 ThreadLocal
- 「周末福报」如何高效使用 Kryo
- 「刷题警告」递归算法
- 轻松学Pytorch – 构建生成对抗网络
- 「周末福报」你了解 SPI 吗?
- 「周末福报」如何实现一棵二叉树?
- Commit Message 杂谈:劣与优
- VUE|Vue实例
- 「拥抱开源」从零开始 Docker、Mysql & JPA