day22作业详解
1.面向对象作业1



2.作业详解
点击查看详细内容
#1.
class Li(object):
def func1(self):
print('in func1')
obj = Li()
obj.func1()
2.用代码
封装
a.将相关功能封装到一个类中
b.将数据封装到一个对象中
a.
class Login(object):
def register(self):pass
def login(self):pass
b.
class Person(object):
def init(self,name,age,gender):
self.name = name
self.age = age
self.gender = gender
obj = Person('Alex',44,'男')
继承
提高代码重用性
原则:现在自己类中找,找不到再去父类中找
class Father(object):
def func1(self):
print('in func1')
class Son(Father):
def func2(self):
print('in func2')
obj = Son()
obj.func2()
多态
多种形状或多种状态,其他语言传参时只能传指定的一种类的对象
3.
class Pr(object):
def func(self,a1):
print(a1)
obj = Pr()
obj.func('哈哈')
4.方法和函数的区别
a.函数放在类中就是方法,参数多了一个self
b.方法调用时要通过实例化对象调用
5.什么是真正的构造方法
a.将数据封装到对象中,以供自己的方法调用
b.将数据封装到对象中,以供其他函数调用
c.先执行 __new__ 方法,构造方法return创建obj,给 __init__ 初始化
class Foo(object):
def __init__(self,a1): # 初始化方法
'''
为__new__创建的obj进行数据初始化,把数据放到创建obj中,可以被其他方法调用
:param a1:
'''
print(1)
self.a1 = a1
print(a1)
def __new__(cls, *args, **kwargs): # 真正的构造方法
'''
创建一个空对象,必须要有return把创建obj返回给__init__
:param args:
:param kwargs:
:return:
'''
print(2)
return object.__new__(cls) # Python内部创建一个当前类的对象(初创时内部是空的。)
obj = Foo(99)
6.面向对象中的self指的是什么?
self指的是类对象对应的类
7.
封装,把数据封装到初始化方法中
8.
封装,把数据封装到类中
9.
foo.func
None
10.
class calc_y(object):
def init(self,ban):
self.ban = ban
def c_zhou(self):
print('zhou*%s'%self.ban)
def c_mian(self):
print('mian*%s'%self.ban)
obj = calc_y(3)
obj.c_zhou()
obj.c_mian()
11.增加代码重用性
继承原则:先在自己类中找,找不到再去父类找
12.
a.自身类 > 左边父类 > 右边父类
b.self是哪个类的对象,就从该类开始找
13.
foo.f0
base2.f3
base1.1
14. 报错,因为调用的对象是Base类
15.
class User(object):
def init(self,user,pwd,email):
self.user = user
self.pwd = pwd
self.email = email
class Input(object):
def run(self):
user_list = []
n = 0
while n<3:
n += 1
user = input("请输入用户名:")
pwd = input("请输入密码:")
email = input("请输入邮箱:")
obj = User(user,pwd,email)
user_list.append(obj)
else:
for i in user_list:
print(i.user,i.pwd,i.email)
obj = Input()
obj.run()
16.
class User:
def __init__(self,name,pwd):
self.name = name
self.pwd = pwd
class Account:
def __init__(self):
self.user_list = [] # 用户列表,数据格式:[User对象.User对象.User对象]
def login(self):
name = input("请输入登录账号:")
pwd = input("请输入登录密码:")
flag = False
for user in self.user_list:
# print(user.name,user.pwd)
if name == user.name and pwd == user.pwd:
flag = True
break
if flag:
print("登陆成功 !")
else:
print("登录失败 ~")
def register(self):
i = 1
while i<3:
i+=1
name = input("请输入注册用户名:")
pwd = input("请设置注册密码:")
reg_user = User(name,pwd) # 动态创建User对象,添加到self.user_list中
self.user_list.append(reg_user)
def run(self):
self.register()
self.login()
if name == 'main':
obj = Account()
obj.run()
day22作业详解的更多相关文章
- day6作业详解
1.day6题目 1,老男孩好声⾳选秀⼤赛评委在打分的时候呢, 可以进⾏输入. 假设, 老男孩有10个评委. 让10个评委进⾏打分, 要求, 分数必须⼤于5分, 小于10分. 电影投票. 程序先给出⼀ ...
- day4列表作业详解
1.day4题目 day4作业 1,写代码,有如下列表,按照要求实现每一个功能 li = ["alex", "WuSir", "ritian" ...
- day23作业详解
1.题目 2.题目详解 点击查看详细内容 1. 1-1 封装 把功能封装到类中 class Message(object): def email(self):pass def msg(self):pa ...
- day13列表推导式作业详解
1.day13题目 2,用列表推导式做下列小题 (1)过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 (2)求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表 (3)求M ...
- day10函数作业详解
1.day10题目 2,写函数,接收n个数字,求这些参数数字的和.(动态传参) 3,读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么? a=10 b=20 def test5(a,b): ...
- day9函数作业详解
1.day9题目 1,整理函数相关知识点,写博客. 2,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. 3,写函数,判断用户传入的对象(字符串.列表.元组 ...
- day8文件操作作业详解
1.day8题目 1,有如下文件,a1.txt,里面的内容为: 老男孩是最好的培训机构, 全心全意为学生服务, 只为学生未来,不为牟利. 我说的都是真的.哈哈 分别完成以下的功能: a,将原文件全部读 ...
- day7计算作业详解
1.day7题目 1.判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数, 例如: 153 = 13 + 53 + 3**3 2.给 ...
- day5字典作业详解
1.day5题目 1.有如下变量(tu是个元祖),请实现要求的功能 tu = ("alex", [11, 22, {"k1": 'v1', "k2&q ...
随机推荐
- 【JVM】jvm垃圾回收器相关垃圾回收算法
引用计数法[原理]--->引用计数器是经典的也是最古老的垃圾收集防范.--->实现原理:对于对象A,只要有任何一个对象引用A,则计数器加1.当引用失效时,计数器减1.只要对象A的计数器值为 ...
- bzoj 2631: tree link-cut-tree
题目: Description 一棵n个点的树,每个点的初始权值为1.对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c: - u1 v1 u ...
- HTML a标签如何设置margin属性(转)
很多同学发现对DIV有效的许多CSS属性对<a>或<p>标签都无效,好比说 <div style="margin-top:5px;"></ ...
- [转]HTTP中cache-control的应用及说明
网页的缓存是由http消息头中的“Cache-control”来控制的,常见的取值有private.no-cache.max-age.must-revalidate等,默认为private.其作用根据 ...
- Poj 2662,2909 Goldbach's Conjecture (素数判定)
一.Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard ...
- html中插入css和js
插入css: HTML周明华添加css样式的方法有很多种,常见的有一下几种:. 1.直接标签后添加如: <html> <div style="background:red; ...
- popup的简单应用举例
一.首先说一下自执行函数 1. 立即执行函数是什么?也就是匿名函数 立即执行函数就是 声明一个匿名函数 马上调用这个匿名函数 2.popup的举例 点击,弹出一个新的窗口.保存完事,页面不刷新数据就返 ...
- C语言学习笔记--enum和sizeof关键字
1.enum关键字 C语言中enum关键字用来定义枚举类型 (1)enum 是 C 语言中的一种自定义类型(2)enum 值是可以根据需要自定义的的整型值(3)第一个定义的 enum 值默认为 0 ( ...
- Android M AudioPolicy 分析
1.AudioPolicyService基础 AudioPolicy在Android系统中主要负责Audio"策略"相关的问题.它和AudioFlinger一起组成了Android ...
- WM学习之——火山
效果图 节点图如下: 说明: Radial grad--锥形建立节点 Perlin Noise--基础地形创建节点 Combiner--联合节点 Clamp--范围/高度控制节点 Bias/Gain- ...