python之面向对象与实例属性
Posted changzhendong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之面向对象与实例属性相关的知识,希望对你有一定的参考价值。
一、三大编程范式
1.1面向过程编程
面向对象编程就是将编程当成是做一件事,要按步骤完成,每一步就是一个过程。
# 打扫房间 print(‘开始扫地‘) def step_1(): print(‘准备扫帚‘) def step_2(): print(‘打扫房间‘) def step_3(): print(‘扫完,将扫帚放回原地‘) step_1() step_2() step_3() 执行结果如下: 开始扫地 准备扫帚 打扫房间 扫完,将扫帚放回原地
1.2函数编程
函数式编程:函数式 = 编程语言定义的函数+数学意义的函数;通俗来讲,函数式就是用编程语言去实现数学函数。这种函数内对象是永恒不变的,要么参数是函数,要么返回值是函数,没有for和while循环,所有的循环都由递归去实现,无变量的赋值(即不用变量去保存状态),无赋值即不改变。
1.3面向对象编程
面向对象就是将编程当成是一个事物,编程就是设置事物能够做什么事。二
def personal(name,gender,type): #人的动作 def enroll(personal): print(‘%s去福建上学‘ %personal[‘name‘]) def province(personal): print(‘北京大学经济与管理学院录取了[%s]‘ %personal[‘type‘]) def init(name,gender,type): personal1 = "name": name, "gender": gender, "type": type, "enroll": enroll, "province":province return personal1 return init(name,gender,type) p1=personal(‘czd‘,‘male‘,‘fzuniv‘) print(p1) p1[‘enroll‘](p1) p2=personal(‘dfz‘,‘female‘,‘bduniv‘) print(p2) p2[‘province‘](p2)
二、类与对象的基本理解
类:把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念。
对象:就是基于类而创建的一个具体的事物(具体存在的),也是特征和动作整合到一块。
类与对象的关系:对象都是由类产生的。
实例化:由类生产对象的过程叫实例化,类实例化的结果就是一个对象,或者叫做一个实例(实例=对象)
三、类与对象的相关知识
3.1类相关知识
python2中有经典类和新式类,python3中都是新式类.
新式类和经典类声明的最大不同在于,所有新式类必须继承至少一个父类
#声明一个类 #经典类 class Chinese: ‘这是一个中国人的类‘ pass print(Chinese) #实例化到底干了什么 p1=Chinese() #实例化过程 print(p1) #返回一个结果,相当于return #新式类 class Chinese(object): #(父类) pass print(Chinese)
3.1.1 属性
类是用来描述一类事物,类的对象指的是这一类事物中的一个个体。
事物就要有属性,属性分:
a.数据属性:就是变量
b.函数属性:就是函数,在面向对象里通常称为方法
概括:数据属性即变量,类的定义与函数又极其类似,其实可以用函数的作用域来理解类的属性调用。
3.1.2查看类属性
定义的类属性到底存放到哪里了?有两种方式查看
dir(类名):查出的是一个名字列表
类名.__dict__:查出的是一个字典,key为属性名,value为属性值
3.2对象相关知识
class Japanese: party=‘民主党‘ def __init__(self,name,age,gender): self.mingzi=name self.nianling=age self.xingbie=gender def sui_di_tu_tan(): print(‘朝着....就是一口痰‘) def cha_dui(self): print("%s查到了前面" %self.mingzi) p1=Japanese(‘dsa‘,16,‘male‘) #----->__init__(self,name,age,gender) print(Japanese.__dict__) Japanese.sui_di_tu_tan() Japanese.cha_dui(p1)
3.3类属性的增删改查
class Chinese: party=‘新民党‘ def __init__(self,name,age,gender): self.mingzi=name self.nianling=age self.xingbie=gender def sui_di_tu_tan(self): print(‘%s朝着....就是一口痰‘ %self.mingzi) def cha_dui(self): print("%s查到了前面" %self.mingzi) def eat_food(self,food): print(‘%s正在吃%s‘ %(self.mingzi,food)) p1=Chinese(‘李志强‘,23,‘male‘) p1.sui_di_tu_tan() p1.eat_food(‘大盘鸡‘) p2=Chinese(‘caw‘,25,‘female‘) p2.eat_food(‘佛跳墙‘) # ------------查 # print(Chinese.party) #--------------改 Chinese.party=‘guomindang‘ print(Chinese.party) #------------增 Chinese.guojia=‘中国‘ print(Chinese.guojia) # ----------删 del Chinese.party print(Chinese.__dict__)
3.4实例属性的增删改查
class Chinese: country=‘China‘ def __init__(self,name): self.name=name def play_ball(self,name): print(‘%s正在打%s‘%(self.name,ball)) p1=Chinese(‘czd‘) print(p1.__dict__) # -----------查看 print(p1.name) print(p1.play_ball) # -----------增加 p1.age=18 print(p1.__dict__) print(p1.age) #------------修改 Chinese.country=‘日本‘ print(Chinese.country) p1.age=20 print(p1.__dict__) print(‘------>‘,p1.age) #------------删除 del Chinese.country print(Chinese.__dict__)
四、对象和实例的补充
class Chinese: country=‘China‘ l=[‘a‘,‘b‘] def __init__(self,name): self.name=name def play_ball(self,name): print(‘%s正在打%s‘%(self.name,ball)) p1=Chinese(‘czd‘) print(p1.l) p1.l=[1,2,3] print(Chinese.l) #改的是p1的,Chinese.l不变 print(p1.__dict__) p1.l.append(‘c‘) #在类里面增加 print(p1.__dict__) print(Chinese.l)
以上是关于python之面向对象与实例属性的主要内容,如果未能解决你的问题,请参考以下文章