jcms网站建设,东莞建设监督网站,东莞有哪些互联网公司,佛山市企业网站建设平台面向对象编程 1.面向对象初步了解 面向过程编程与函数编程对比#xff1a; s1 ajdsgkaffddha
count 0
for i in s1:count 1
print(f字符串的长度为{count}) # 面向过程编程每计算一次便使用一次for循环def my_len(s): # 计算数据类型长度的函数#xff0c;可重复使用… 面向对象编程 1.面向对象初步了解 面向过程编程与函数编程对比 s1 ajdsgkaffddha
count 0
for i in s1:count 1
print(f字符串的长度为{count}) # 面向过程编程每计算一次便使用一次for循环def my_len(s): # 计算数据类型长度的函数可重复使用count 0for i in s:count 1return count
print(my_len(s1)) 通过对比可知函数编程较之面向过程编程最明显的两个特点 1减少代码的重用性。 2增强代码的可读性。 同样函数编程与面向对象变成的对比 # 函数编程
auth # 认证相关
def register():pass
def login():pass# 账户相关
def func1():pass
def func2():pass# 购物车相关
def shopping_car():pass
def check_paid_goods():pass
def check_unpaid_goods():pass
def save():pass# 面向对象编程
class Auth:def register():passdef login():passclass Account:def func1():passdef func2():passclass Shopping:def shopping_car():passdef check_paid_goods():passdef check_unpaid_goods():passdef save():pass 通过对比可以看出面向对象第一个优点 面向对象编程是一类相似功能函数的集合,使你的代码更清晰化更合理化。 说第二个优点之前先看看什么是面向对象。 面向对象的程序设计的核心是对象上帝式思维要理解对象为何物必须把自己当成上帝上帝眼里世间存在的万物皆为对象不存在的也可以创造出来。 那什么是类什么是对象 类就是具有相同属性和功能的一类事物。 对象就是类的具体表现。 简而言之类就像制造一类事物的模板而对象则是制造出来的一个个具体化的实例 2.面向的对象的结构 class Human:mind 有思想language 使用语言l1 [] # 静态变量def work(self)print(人类会工作)def eat(self):print(人类都需要吃饭) # 动态方法# class 关键字定义一个类
# Human 类名类名使用驼峰(CamelCase)命名风格首字母大写私有类可用一个下划线开头。
# 类的结构从大方向来说就分为两部分
# 静态变量。
# 动态方法。 3.从类名的角度研究类 - 类名操作类的属性 第一种查看类中的所有内容类名.__dict__方式。 class Human:mind 有思想language 使用语言l1 [] # 静态变量def work(self)print(人类会工作)def eat(self):print(人类都需要吃饭) # 动态方法
print(Human.__dict__) # 查看类中所有的内容
print(Human.__dict__[mind]) # 查看类中mind属性的内容
Human.__dict__[mind] 无脑
print(Human.__dict__) # 这种做法是错误的__dict__无法修改类中的内容 第二种万能的点. class Human:mind 有思想 # 第一部分静态属性 属性 静态变量 静态字段dic {}l1 []def work(self):print(self)print(人类都会工作) # 第二部分方法 函数 动态属性
print(Human.mind) # 查
Human.mind 无脑 # 改
print(Human.mind)
del Human.mind # 删
Human.walk 直立行走
print(Human.walk)
# 通过万能的. 可以增删查改类中的单个属性 **总结如果想查询类中的所有内容通过 第一种__dict__方法如果只是操作单个属性则用万能的点的方式。** - 类名调用类的方法 前提除了两个特殊方法静态方法类方法之外一般不会通过类名操作一个类中的方法。 class Human:mind 有思想dic {}l1 []def work(self):print(self)print(人类会工作)def tools(self):print(人类会使用工具)
Human.work(111)
Human.tools(111)
Human.__dict__[work](111)
# 结果
111
人类会工作
人类会使用工具
111
人类会工作 4.从对象的角度研究类 - 什么是对象 对象是从类中出来的只要是类名加上这就是一个实例化过程这个就会实例化一个对象。 class Human:mind 有思想def __init__(self):print(666)print(self) # __main__.Human object at 0x00000196E0DA8CF8def work(self):print(人类会使用工具)
obj Human() # 只要实例化对象它会在自动执行__init__方法
print(obj) # __main__.Human object at 0x00000196E0DA8CF8
# 结果# obj地址与self的地址相同
666
__main__.Human object at 0x00000196E0DA8CF8
__main__.Human object at 0x00000196E0DA8CF8 - 实例化对象发生了三件事 其实实例化一个对象总共发生了三件事 1.在内存中开辟了一个对象空间。 2.自动执行类中的__init__方法并将这个对象空间内存地址传给了__init__方法的第一个位置参数self。 3.在__init__ 方法中通过self给对象空间添加属性。 class Human:mind 有思想language 使用语言def __init__(self,name,sex,age,hobby):# self和obj两个变量指向同一个内存地址下面就是通过self给这个对象空间封装四个属性。self.n nameself.s sexself.a ageself.h hobbyobj Human(barry,男,18,运动) - 对象操作对象属性 class Human:mind 有思想language 使用语言def __init__(self,name,sex,age,hobby):# self和obj两个变量指向同一个内存地址下面就是通过self给这个对象空间封装四个属性。self.n nameself.s sexself.a ageself.h hobbyobj Human(barry,男,18,运动)
obj.job IT # 增
del obj.n # 删
obj.s 女 # 改
print(obj.s) # 查
print(obj.__dict__)
# 结果
女
{s: 女, a: 18, h: 运动, job: IT} - 对象查看类中的属性 class Human:mind 有思想language 使用语言def __init__(self,name,sex,age,hobby):self.n nameself.s sexself.a ageself.h hobbyobj Human(barry,男,18,运动)
print(obj.mind)
print(obj.language)
obj.a 666
print(obj.a)
# 结果
有思想
使用语言
666 - 对象调用类中的方法 class Human:mind 有思想language 使用语言def __init__(self,name,sex,age,hobby):self.n nameself.s sexself.a ageself.h hobbydef work(self):print(self)print(人类会工作)def tools(self):print(人类会使用工具)
obj Human(barry,男,18,运动)
obj.work()
obj.tools()
# 结果
__main__.Human object at 0x000001D2414DF7F0 # 实例化对象内存地址
人类会工作
人类会使用工具 类中的方法一般都是通过对象执行的出去类方法静态方法外并且对象执行这些方法都会自动将对象空间传给方法中的第一个参数self. 5.self是什么 self其实就是类中方法函数的第一个位置参数只不过解释器会自动将调用这个函数的对象传给self。所以咱们把类中的方法的第一个参数约定俗成设置成self, 代表这个就是对象。 6.一个类可以实例化多个对象 class Human:mind 有思想language 使用语言def __init__(self,name,sex,age,hobby):self.n nameself.s sexself.a ageself.h hobbydef work(self):print(self)print(人类会工作)def tools(self):print(人类会使用工具)
obj1 Human(小胖,男,20,美女)
obj2 Human(相爷,男,18,肥女)
print(obj1,obj2)
print(obj1.__dict__)
print(obj2.__dict__)
# 结果
__main__.Human object at 0x000001C96A1FF860 __main__.Human object at 0x000001C96A1FF898
{n: 小胖, s: 男, a: 20, h: 美女}
{n: 相爷, s: 男, a: 18, h: 肥女} 转载于:https://www.cnblogs.com/lifangzheng/p/11290599.html