python编程和继承_python 类和继承

python 也是面向对象的高级语言,但是平时没有大的项目,也不需要对象属性,方法封装和继承等,所以习惯写函数,但是当稍微做大一点的项目,类比函数编程还是有很大的优势。。。

类由属性和方法组成

class Human(object):

__Class_name = "Human" #私有属性,只能在类内部访问

name = "" #类属性,此处可以不写,那样类就没有这个属性

age = 0

def __init__(self,name,age):

self.name = name #实例属性

self.age = age

def __print(self): #私有方法

print self.name,self.age

def tell(self):

print self.__Class_name

self.__print() #只能在类内部调用私有方法

属性按所属可以分为类属性,实例属性。按是否可以在类外部访问可以分为可访问变量(非私有变量),不可访问变量(私有变量,通过下划线加属性名称组成其实也不是完全不可访问,具体可以查看我转载的一篇python中下划线用法)。

类属性的访问可以直接通过类名称访问,如:Human.name,也可以直接改变类属性,Human.age=10.   类属性最好不要初始化实例属性的,没用还浪费几行代码,也就是说上面的类里的name,age最好不要写。类属性一般写的是类的版本,或者其他一些共有的属性。

实例属性,就是初始化__init__后面的属性,这些属性是在实例化对象时必须写的属性。

方法可以分为类方法,静态方法,私有方法,普通方法。此处不展开,可以查看我的另外一篇文章:python类中类方法,静态方法,私有方法。

类的好处之一就是封装,这样我们就可以在其他包中调用自己写好的类。

然后是类的继承,了解java的一定知道继承,java中是单继承,python是多继承。

首先看python中继承一个父类。

class Student(Human):

def __init__(self,name,age,grade):

#Human.__init__(self,name,age) 继承初始化可以用父类名称.__init__或者super两种方法,当继承一个父类时,两种写法没有区别 ,注意,super是在新式类才有的,不能在旧式类中用。

super(Student,self).__init__(name,age)

self.grade = grade

def tell(self):

print "My name is %s ,my age is %d,and my grade is %d"%(self.name,self.age,self.grade) 此处是方法的覆写

单继承没什么好说的,多继承还是比较麻烦的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值