本文实例讲述了Python面向对象思想与应用。分享给大家供大家参考,具体如下:
面向对象思想
1、面向对象的设计思想
面向对象是基于万物皆对象这个哲学观点。
2、面向对象和面向过程的区别
面向过程
在生活中:
它是一种看待问题的思维方式,在思考问题的时候,着眼问题是怎样一步一步解决的,然后亲力亲为去解决问题[类似于公司里的执行者]。
在程序中:
"font-size: medium">类和对象1、类和对象的概念
类:一个具有特殊功能的实体的集合[群体]。
对象:在一个类中,一个具有特殊功能的实体,能够帮忙解决特定的问题,对象通常也被称为实例。
两者之间的关系:类用于描述某一对象的共同特征,而对象则是类的具体存在。
举例:
学生 张三、李四
快递 顺丰、韵达总结:
类与对象的关系:
a.类是对象的抽象,对象是类的具体体现。
b.类也是一种数据类型,只不过是自己定义的,类似与number,string等,它本身并不占用空间,但是它的实例[对象]是占用空间的。2、类的定义
格式:
class 类名(object): "htmlcode"># 一个简单的类的实例 class Person(): print("hello")3、类的设计
只需要关心3样东西
1.事物名称[类名]: 如人类 (Person);
2.特征(属性): 如身高(height) 年龄(age)等 ——>名词;
3.行为(方法): 如跑(run) 说话(say) —————>动词。类中的方法和属性
1、方法和属性的定义
生活中描述事物的无非就是描述事物的特征和行为。
python中用类来描述事物也是如此,前面已经定义了类,但是,如果只有类单独存在,没有任何意义,所以定义类其实就是定义类中的成员[成员变量和成员方法]。
在类中的变量我们称之为成员变量,在类中的方法我们称之为成员方法(函数)。
成员变量—>类具有的特征 例如:人—>身高,性别,体重。
成员方法 —>类具有的行为 例如人—>吃喝玩乐。
因此,拥有相同的(或者类似)属性和行为的对象都可以抽取出一个类。
class Persion(): #成员变量,初始值就是相当于默认值 name = "" age = 0 height = 0 weight = 0 #成员方法 #在类的内部,使用def关键字来定义的一个方法 #注意:区别于普通方法,类中方法的参数必须包含参数self,且为第一个参数 #self代表类的实例(某个对象) def run(self): print("run") def eat(self, food): print("eat",food) def sleep(self): print("sleeping")说明:定义了类,并在类中定义了成员变量和成员方法,但是成员变量和成员方法是如何使用的呢"htmlcode">
''' 实例化对象 格式: 对象名 = 类名() 注意: 没有参数的时候,小括号也不能省略 ''' #实例化一个对象 pre1 = Person() print(pre1) print(type(per1)) print(id(per1)) per2 = Person() print(per2) print(type(per2)) print(id(per2))3、对象调用方法和属性
per = Preson() ''' 访问属性 格式:对象名.属性名 赋值:对象名.属性名 = 新值 ''' per.name = 'lili' per.age = 18 per.height = 160 per.weight = 80 print(per.name, per.age, per.height, per.weight) ''' 访问方法 格式:对象名.方法名(参数列表) ''' per.run() per.eat("apple") per.sleep() #问题:目前来看Person创建的所有对象属性都是一样的 per2 = Person() print(per2.age) per3 = Person() print(per3.age)总结:
访问变量采用: 对象名.属性名;
访问方法采用: 对象名.方法名(参数列表)。4、内存中的对象
per = Person()说明:程序中定义Person类型的变量per实际是一个变量名,它被存放在栈内存中,它指向实际的Person对象,而真正的Person对象则存放在堆内存中。
综合练习:
第一天开学,介绍一下你自己其中包括姓名,年龄以及爱好
#学生类 class Student(): #特征:成员变量 self.name = "" self.age = "" self.hobby ="" def introduce(self,name, age, hobby): print("大家好,我是%s,今年%d岁,爱好是%s"%(name,age, hobby)) def singsong(self): print("娘子~啊哈") def dance(self): print("广场舞跳起来...") def lie(self): print("我家特别穷,我小时候就一直在放牛,只有几万头....") # 类实例化 stu = Student() # 成员方法调用 stu.introduce('ldc',18,'跑步') stu.singsong() stu.dance() stu.lie()输出:
大家好,我是ldc,今年18岁,爱好是跑步
娘子~啊哈
广场舞跳起来...
我家特别穷,我小时候就一直在放牛,只有几万头....如何查看所有属性和方法
class Test(): def __init__(self,name): self.name = name def test(self): print('testing...') test = Test('测试') # 查看所有属性和方法 list1 = dir(test) # 检查实例是否有这个属性 print(hasattr(test, 'name'),hasattr(test, 'test'),hasattr(test, 'tt')) # 设置属性值 setattr(test,'name','测试2') # 获取属性值 print(getattr(test, 'name'))输出:
True True False
测试2更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]