Python面向对象
面向过程(c语言)
面向对象:站在上帝的视角下,世间万物一切皆对象。
先通过用户需求建立模型,再用户多次交互改进
注意:class 定义类的时候,类的首字母必须是大写
调用方法为: 类名+.show 的方法.
面向对象的三个特性:
1、封装
A、实例属性
B、数据属性(类里面的变量)
2、继承
3、多态
要调用类里面的变量,以及方法(函数)等.首先对类进行实例化
obj是类Person()实例化后的对象
类实例化的过程也是类初始化的过程
类:
经典类
新式类
# 定义类 class Person(object): # name和age可以理解为类的属性 # init-->是初始化 # 构造方法/构造函数 def __init__(self,name,age): # 实例属性 self.name=name self.age=age print('start') # 清理操作 def __del__(self): print('end') # 定义一个show方法返回的是类本身自己 def show(self): # format()字符串格式化 print('name:{0},age:{1}'.format(self.name,self.age)) # 类实例化的过程,也是针对构造方法初始化的过程(等于调用了__init__的方法) obj=Person(name='wr',age=18) obj.show() print(obj.name) 结果: start name:wr,age:18 wr end
封装
# 封装 class Animal(object): def __init__(self,age): self.age=age # 获取初始age def getAge(self): return self.age # 修改获取的age def setAge(self,age): if age>10 and age<100: self.age=age else: print('年龄错误') objAnimal=Animal(age=30) print(objAnimal.getAge()) objAnimal.setAge(age=90) print(objAnimal.getAge()) class Animal(object): address='地球' def __init__(self,age): self.age=age def show(self): print('it is come from {0},and age is {1}'.format(self.address,self.age)) objAnimal=Animal(age=40) objAnimal.show() print(objAnimal.address) print(objAnimal.age) 结果: 30 90 it is come from 地球,and age is 40 地球 40
方法:
1、普通方法(方法可以读写)
2、特性方法(具备只读属性,方法不能有形式参数)
3、静态方法(属于类,只能用类名来调用),一般把数据属性使用静态方法来进行了处理
class Animal(object): # address='地球' def __init__(self,age): self.age=age def show(self,name=' 野猪'): print('it is come from{0},and age is {1},and name is{2}'. format(self.address(),self.age,name)) def func(self,**kwargs): print(kwargs) @staticmethod def address(): return ' 地球' @property def info(self): print('hello world') @property def getAge(self): return self.age objAnimal=Animal(age=30) objAnimal.show() objAnimal.info objAnimal.func(name='wuya',age=18,city='xian') 结果: it is come from 地球,and age is 30,and name is 野猪 hello world {'name': 'wuya', 'age': 18, 'city': 'xian'}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异