1.使用类名创建对象的时候,创建对象,Python解释器
会自动为对象在内存中分配空间。调用初始化方法为对象的属性设置初始值
这个初始化方法是init方法
使用类名创建对象的时候哦,会自动调用初始化方法
2.继承的语法
class 类名(父类)
def 子类特意有的方法
重写父类方法有两种情况
1.覆盖父类方法 2.对父类方法进行扩展
1.覆盖父类的方法
如果在开发中,父类父类方法的实现和子类方法的实现
完全不同,就可以使用覆盖的方式
在子类中重新编写父类的方法
具体实现方式,就相当于在子类中定义了
一个和父类同名的方法并实现
重写之后 在运行时 只会调用子类的重写方法
而不会再调用父类封装的方法
对父类的方法进行扩展
如果在开发中,子类的方法实现包含父类的方法实现
(父类原本封装的方法实现是子类方法的一部分就可以
使用扩展方法)
1.在子类中重写父类的方法
2.在需要的位置使用 父类名。方法(self)来调用父类方法
的执行(使用父类名称调用父类方法)
3.代码其他的位置针对子类的需求,编写子类特有的代码实现
“””
继承的传递性:(爷爷 父亲 儿子)
1.C类从B类继承,B类又从A类继承
2.那末C类就具有B类和A类的所有属性和方法
子类具有父类及父类的父类中封装的所有属性和方法
“””
继承自己示例
class Person():
def __init__(self,name,weight):
self.name = name
self.weight = weight
def __str__(self):
return '我的名字叫 %s 体重是%.2f' % (self.name ,self.weight)
def run(self):
print '%s 爱跑步' % self.name
self.weight -=0.5
def eat(self):
print '%s 吃东西' % self.name
self.eat +=1.0
xiaoming = Person('xiaoming',50.0)
xiaoming.run()
print xiaoming
小狗爱睡觉 小狗爱乱跳示例
class dog():
def sleep(self):
print '小狗爱睡觉'
def jump(self):
print '小狗爱乱跳'
jia = dog()
jia.sleep()
jia.jump()
print jia
addr = id(jia)
#%x:打印格式为十六进制
print '%x' % addr
#%d:打印格式为十进制
print '%d' % addr
#再创建一个狗类对象
lazy_dog = dog()
lazy_dog.sleep()
lazy_dog.jump()
print lazy_dog
fool_dog = lazy_dog
print fool_dog
示例三
class Cat():
def __init__(self,new_name):
self.name = new_name
print '%s 来了' % self.name
def __del__(self):
print '%s 走了' % self.name
tom = Cat('tom')
print tom.name