设为首页 收藏本站
查看: 556|回复: 0

[经验分享] python笔记之面向对象编程

[复制链接]

尚未签到

发表于 2017-4-30 09:56:38 | 显示全部楼层 |阅读模式
看完天下足球和那该死的什么斯之旅,有种被骗的感觉,节目做的真是越来越步入俗套了,影响了心情,关掉电视开始反省自己。上一周虽然工作和生活日程还算丰富,内心却不免自责,自己的读书进度却是太慢,怎么说咱就要开始上班族2周年的庆祝了,此时却在技术领域上进步缓慢,唯有腰围和酒量大增。。。暂鉴定完毕,开始做笔记。
一、类的方法和对象调用
一般类中方法前初始的变量称为 类的变量,在类的方法中初始的变量为 对象的变量
定义方法时用self变量作为类的默认属性,所有方法的其他变量(对象变量)赋值通过class.self传递为与类联系的链条。用户调用时通过 class.(对象变量的赋值).(方法)<除self默认外的参数>
按照A Byte of Python的例子再写一遍应该可以看懂每行的语句含义:

#!/usr/bin/python
# -*- coding:gb2312 -*- #必须在第一行或者第二行
#Filename:objvar.py

class Person:
'''Represents a person'''
population = 0     #初始化类变量
def __init__(self,name):
'''Initializes the person's data'''
self.name = name     #定义__init__方法self.name域
print 'Initializing %s' % self.name
Person.population += 1
def __del__(self):    #不需要参数的方法仍要定义 self参数
'''I am dying'''
print '%s says bye' % self.name
Person.population -= 1
if Person.population == 0:
print 'I am the last one'
else:
print 'There are still %d people left.' % Person.population
def sayHi(self):
'''Creating by the person.
Really,that's all it does.'''
print 'Hi,my name is %s' % self.name
def howMany(self):
'''Prints the current population.'''
if Person.population == 1:
print 'I am the only one person here.'
else:
print 'We have %d person here.' % Person.population
songy = Person('SongYang')   
songy.sayHi()   # Person('SongYang').sayHi() SongYang实例的sayHi方法调用
songy.howMany()
swaroop = Person('Swaroop')
swaroop.sayHi()
swaroop.howMany()
songy.sayHi()
songy.howMany()


从上例也可看出,类的不同实例(对象)之间,都有自己在域上的不用拷贝,他们之间是不相通的。

二、继承

A Byte of Python的例子,重抄了一遍,加了些注释

#!/usr/bin/python
# -*- coding:gb2312 -*-
# Filename: inherit.py
class SchoolMember:
'''Represents any scholl member.'''
def __init__(self,name,age):   #定义SchoolMember类的2个参数
self.name = name
self.age = age
print 'Initialized SchoolMember:%s' % self.name
def tell(self):         
'''Tell details.'''
print 'Name:"%s",Age:"%s"' % (self.name,self.age), #别小瞧了末尾的这个逗号
class Teacher(SchoolMember):
'''Represents a teacher.'''
def __init__(self,name,age,salary):  #Teacher类的3个属性
SchoolMember.__init__(self,name,age)  #从SchoolMember继承2个属性,终于知道原来这就是继承:)
self.salary = salary     #别忘了定义其他参数
print 'Initialized Teacher:%s' % self.name
def tell(self):
SchoolMember.tell(self)
print 'Salary:"%d"' % self.salary
class Student(SchoolMember):
'''Represents a student.'''
def __init__(self,name,age,marks):
SchoolMember.__init__(self,name,age)
self.marks= marks
print 'Initialized Student:%s' % self.name
def tell(self):
SchoolMember.tell(self)
print 'Marks:"%d"' % self.marks,

t = Teacher('Mr.Swaroop',26,30000) # 类实例的三个属性
s = Student('Song',22,77)
members = [t,s]
for member in members:  #喜欢python当然也少不了对for...in的青睐
member.tell()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-371084-1-1.html 上篇帖子: SAE-Python教程(一) 在SAE上进行Python的开发 下篇帖子: 来自Python初学者的三大困难
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表