面向对象回顾01

面向对象初识
1.函数式编程 对 面向过程编程的两个特点
减少代码的重复性
增强代码的可读性
2.面向对象编程 对 面向过程编程
2.1 什么是面向对象
? 面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为对象,不存在的也可以创造出来。

2.2 什么是类,什么是对象
? 类:就是具有相同属性和功能的一类事物。

? 对象:就是类的具体表现。

3.类的结构
class Human:
"""
此类主要是构建人类
"""
mind = ‘有思想‘ # 第一部分:静态属性 属性 静态变量 静态字段
dic = {}
l1 = []
def work(self): # 第二部分:方法 函数 动态属性
print(‘人类会工作‘)
class 是关键字与def用法相同,定义一个类。
Human是此类的类名,类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头。
类的结构从大方向来说就分为两部分:
静态变量。
动态方法。
从类名的角度研究类
class Human:
"""
类的具体结构
"""
# 第一部分:静态属性
mind = ‘有思想‘ # 类的属性 (静态属性, 静态字段)
language = ‘使用语言‘
# 第二部分: 动态方法
def work(self):
print(‘人类都会工作‘)
def eat(self):
print(‘人类都需要吃饭‘)

  1. 类名操作类中的属性

    1. 类名查看类中所有的内容
      print(Human.__dict__)
    2. 类名操作类中的静态属性 万能的点.

增:
Human.body = ‘有头和四肢‘
删:
del Human.mind
改:
Human.mind = ‘liye脑残‘
查:
print(Human.language)
print(Human.__dict__)

  1. 类名调用类中的方法(一般类中的(静态方法,类方法)方法不会通过类名调用)
    Human.work(111)

总结:
一般类名就是操作类中的属性.
从对象角度研究类
class Human:
"""
类的具体结构
"""
# 第一部分:静态属性
mind = ‘有思想‘ # 类的属性 (静态属性, 静态字段)
language = ‘使用语言‘
def init(self):
# print(f‘self---->: {self}‘)
# print(666)
self.name = ‘李业‘
self.age = 18

# 第二部分: 动态方法
def work(self):
    print('人类都会工作')

def eat(self):
    print('人类都需要吃饭')

obj = Human() # 实例化过程
得到一个返回值,这个返回值就是 对象,实例.
print(f‘obj---> {obj}‘)
实例化一个对象发生了三件事:
‘‘‘
1. 开辟一个对象空间.
2. 自动执行__init__方法,并且将对象地址传给self.
3. 运行__init__方法内的代码,给对象空间封装属性.

‘‘‘

class Human:
"""
类的具体结构
"""
# 第一部分:静态属性
mind = ‘有思想‘ # 类的属性 (静态属性, 静态字段)
language = ‘使用语言‘

def __init__(self, name, age):
    # print(f'self---->: {self}')
    # print(666)
    self.n = name
    self.a = age

# 第二部分: 动态方法
def work(self):
    # print(f'self---> {self}')
    print(f'{self.n}都会工作')

def eat(self):
    print(f'{self.n}都需要吃饭')

obj = Human(‘李业‘,18) # 实例化过程
print(obj.n)
print(obj.a)
print(obj.__dict__)
对象操作对象空间的属性

  1. 对象查看对象的空间的所有属性
    obj = Human(‘李业‘,18)
    print(obj.__dict__)
  2. 对象操作对象空间的属性
    obj = Human(‘李业‘,18)
    增:
    obj.sex = ‘laddy_boy‘
    删:
    del obj.a
    改:
    obj.a = 1000
    查:
    print(obj.n)
    print(obj.__dict__)
    对象查看类中的属性
    obj = Human(‘李业‘,18)

    print(obj.mind)

    obj.mind = ‘无脑的‘
    print(obj.mind)
    print(Human.mind)
    对象调用类中的方法
    obj = Human(‘孙戴维‘, 23)

    print(f‘obj---> {obj}‘)

    obj.work()
    obj.eat()
    一个类可以实例化多个对象
    obj1 = Human(‘李业‘,18)
    obj2 = Human(‘小可爱‘, 16)
    obj3 = Human(‘怼姐‘, 18)

变量,函数名:
age_of_oldboy = 73
Ageofoldboy
logging旗舰版使用
import logging.config

定义三种日志输出格式 开始

standard_format = ‘[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d][%(levelname)s][%(message)s]‘ #其中name为getlogger指定的名字

simple_format = ‘在 %(asctime)s %(message)s‘

id_simple_format = ‘[%(levelname)s][%(asctime)s] %(message)s‘

log文件的全路径

logfile_path = ‘all2.log‘

log配置字典

LOGGING_DIC = {
‘version‘: 1,
‘disable_existing_loggers‘: False,
‘formatters‘: {
‘standard‘: {
‘format‘: standard_format
},
‘simple‘: {
‘format‘: simple_format
},
},
‘filters‘: {},
‘handlers‘: {
#打印到终端的日志
‘stream‘: {
‘level‘: ‘DEBUG‘,
‘class‘: ‘logging.StreamHandler‘, # 打印到屏幕
‘formatter‘: ‘simple‘
},
#打印到文件的日志,收集info及以上的日志
‘file‘: {
‘level‘: ‘DEBUG‘,
‘class‘: ‘logging.handlers.RotatingFileHandler‘, # 保存到文件
‘formatter‘: ‘standard‘,
‘filename‘: None, # 日志文件
‘maxBytes‘: 102410241024, # 日志大小 5M
‘backupCount‘: 5,
‘encoding‘: ‘utf-8‘, # 日志文件的编码,再也不用担心中文log乱码了
},
},
‘loggers‘: {
#logging.getLogger(name)拿到的logger配置
‘‘: {
‘handlers‘: [‘stream‘, ‘file‘], # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
‘level‘: ‘DEBUG‘,
‘propagate‘: True, # 向上(更高level的logger)传递
},
},
}

def get_logger():
path = r‘F:\s24\day21\liye.log‘
LOGGING_DIC[‘handlers‘][‘file‘][‘filename‘] = path
logging.config.dictConfig(LOGGING_DIC) # 导入上面定义的logging配置
logger = logging.getLogger(name) # 生成一个log实例
return logger

def save():
logger = get_logger()
logger.info(f‘{} 存入300元‘) # 记录该文件的运行状态

save()

原文地址:https://www.cnblogs.com/-777/p/11291422.html

时间: 2024-10-10 13:24:45

面向对象回顾01的相关文章

C#面向对象基础01

面向对象不是取代面向过程的类.对象."人"是类,"张三"是人这个类的对象.类是抽象的,对象是具体的.按钮就是类,某个按钮就是对象.对象可以叫做类的实例.类就像int,对象就像10.字段field(和某个对象相关的变量),字段就是类的状态.人这个 类有姓名.年龄.身高等字段.类不占内存,对象才占内存.方法:方法就是累能够执行的动作,比如问好.吃饭等.类的继承,类之间可以有继承关系,比如电脑类可以从"电器"类继承,这样的好处是"电脑&quo

面向对象OOP 01

<meta charset ="utf-8" /> <?php /* 1.什么是面向对象编程 OOP: (Object Oriented Programming,OOP,面向对象程序设计) 是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用 的单元或对象组合而成.OOP 达到了软件工程的三个主要目标:重用性.灵活性和扩展性. 面向对象三大特性 1. 封装性:对象的功能或者属性,用户可用使用,但是具体的代码用户是看不到 2. 继承性:就是

面向对象语法-01

面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 面向对象和面向过程的区别 以用电脑听歌为例子 面向过程 打开电脑 播放电脑中的歌曲 关闭电脑 面向对象(不是相亲的“对象”) 电脑 开机 播放歌曲 关机 区别分析 面向过程关注的是解决问题需要哪些步骤:面向对象关注的是解决问题需要哪些对象 没有开发经验很难感受到它们的区别,两种思想都能达到解决问题的目的,但是解决思路不一样 现实生活中面向对象的例子 想打电话\发短信 ? 找手机,不用分析电话要

面向对象编程01

俗话说:"物以类聚,人以群分",那么这里的"类"实际上就是指的同一类事物,同理在python中,我们也有类的概念,类的概念和我们这里所讲的"物以类聚"中的类的含义是一样的,都是同一类事物的统称,这就是类的概念! 那么为什么要有类呢? 1.我们知道python是面向函数编程和面向对象编程的,那么什么是面向函数编程?什么又是面向对象编程呢?  实际上面向函数编程就是将函数作为一个事物传来传去,面向对象就是将一个对象传来传去(类是模板[一类事物的统称]

php面向对象思想-01

关于面向对象的思想 $this 的用法 使用this关键字 谁调用就是谁 1.const:类成员变量定义,一旦定义且不能改变其值.   define:定义全局常量,在任何地方都可以访问. 2.define:不能在类中定义,而const可以. 3.const:不能在条件语句中定义常量. 4.const:采用一个普通的常量名称,define可以采用表达式作为名称. 5.const:只能接受静态的标量,而define可以采用任何表达式. 6.const:大小写敏感. 原文地址:http://blog.

面向对象回顾

/*面向对象的程序设计面向对象(Object-Oriented,OO)语言有一个标志,那就是它们度要类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.1理解对象创建自定对象最简单的方式就是创建一个Object的实例,然后再为它添加属性和方法*///对象字面量的方法var person = new Object();person.name = "Nicholas";person.age = 29;person.job = "Software Engineer"

面试前的准备---C#知识点回顾----01

过完年来,准备找份新工作,虽然手里的工作不错,但树挪死,人挪活.咱不能一直在一个坑里生活一辈子,外面的世界毕竟是很美好的. 为了能正常的找到自己中意的工作,最近是将所有的基础知识拿出来复习了一次.仅作记录,自勉,各位大神不要喷,随意看看就好了. 以下知识点,均摘自面试过程中遇到的题 1.try{} 里面有个Return语句,那么紧跟try后面的Finally{}会不会执行? 答案:会执行,在Return后执行 喜欢研究透的同学可以参考:http://www.cnblogs.com/forcert

经典回顾01——frankwolfe经典算法

function frankwolfe clc disp('======================================================================================'); disp('                   <经典frankwolfe算法>'); disp('运行环境:MATLAB 8.3.0.532 '); disp('制 作 人:兰州交通大学   刘志祥'); disp('Q      Q:531548824

面向对象text 01 盖伦vs瑞文vs提莫

''' Text For Class: League of Legends Garen vs Riven vs Teemo ''' import random # 全局随机 import time class HeroName: # 英雄名字类 GameName = 'League of Legends' # 游戏名字 def __init__(self,hero_name): # 初始化设定,自身和形参名 self.hero_name = hero_name # 形参名初始化 self.HP