要总结的概念
1.什么是继承?
举个小案例:
1 class Father():
2 def __init__(self,name):
3 self.name=name
4 self.property=3
5 def __str__(self):
6 return "%s喜欢python有%d种特长"%(self.name,self.property)
7 son=Father("小明")
8 print(son)
在这里面son继承的是一个叫Father的类的实例属性:喜欢Python有3钟特长。说的简单的是先定义一个类Father,然后创建一个实例对象son,son便可以继承Father的实例属性
2.什么叫多态?
举个案例如下:
1 class Father():
2 def __init__(self):
3 self.property=3
4 def __str__(self):
5 return "有%d种特长"%(self.property)
6 def python(self):
7 print("我是python全栈工程师")
8 class Mother():
9 def __init__(self):
10 self.skills=3
11 def __str__(self):
12 return "我会%d种专业技能"%self.skills
13 def sing(self):
14 print("我会唱歌")
15
16 class Son(Father,Mother):
17 def java(self):
18 print("我对编程感兴趣")
19 xiaoming=Son()
20 xiaoming.python()
21 xiaoming.java()
22 print(xiaoming)
在这里我们定义了三个类:Father,Mother,Son ,创建一个实例对象为小明,小明为son类,既可以调用Father类的实例属性也可以调用Mother的实例属性,当然换可以重写专属于自己的属性和方法,其实多态就是更容易编写出出通用的代码,做出通用的编程,通过基础和重写以适应需求的不断变化!
3.类与对象
类:具有相同属性和行为的事物的总称
对象:就是类的具体实例
类和对象:类是对象的模子,对象是类的实例
4.什么叫重写?
举个例子:
1 class Father():
2 def __init__(self):
3 self.property=3
4 def __str__(self):
5 return "有%d种特长"%(self.property)
6 def python(self):
7 print("我是python全栈工程师")
8 class Mother():
9 def __init__(self):
10 self.skills=3
11 def __str__(self):
12 return "我会%d种专业技能"%self.skills
13 def sing(self):
14 print("我会唱歌")
15
16 class Son(Father,Mother):
17 def program(self):
18 print("我对编程感兴趣")
19 def python(self):
20 print("我会python和java")
21 xiaoming=Son()
22 xiaoming.python()
23 xiaoming.sing()
24 xiaoming.program()
25 print(xiaoming)
Father的实例方法Python和Son的实例方法Python的实例方法虽然是一样的,但小明的调用的Python的却是Son的Python的方法,Father 的Python的方法被Son里的Python重写了。
4.什么是私有属性?
在属性前加两个下划线变为私有属性
5.什么是私有方法?
在方法前加两个下划线变为私有方法
6.多继承的注意点
在多继承中如果出现相同的调用方法,那么只能调用一个,并且按继承顺序调用
7.如何调用父类方法?
举个例子
1 class Father():
2 instance=8
3 def __init__(self):
4 self.skills=6
5 print("father的方法")
6 def __str__(self):
7 return "我会的技能有%d种"%self.skills
8 @classmethod
9 def song(cls):
10 print("唱歌")
11 @staticmethod
12 def directory():
13 print("打印目录")
14 class Son(Father):
15 def __init__(self):
16 super().__init__()
17 Father.__init__(self)
18 def operate(self):
19 print("我的操作猛如虎")
20 xiaoming=Son()
Son类调用Father的__init__()实例方法有两种调用:1.super().__init__()
2.Father.__init__(self)
8.类方法写法,类属性写法,静态方法写法,魔法方法以及它们如何调用?
举个例子:
1 class Father(object):
2 instance=8
3 def __new__(cls):
4 print("要返回了...")
5 return object.__new__(cls)
6 print("第一次返回")
7 return super().__new__(cls)
8 print("第二次返回")
9 def __init__(self):
10 self.skills=6
11 print("father的方法")
12 def __str__(self):
13 return "我会的技能有%d种"%self.skills
14 def __del__(self):
15 print("del功能要执行了.....")
16 @classmethod
17 def song(cls):
18 print("唱歌")
19 @staticmethod
20 def directory():
21 print("打印目录")
22 class Son(Father):
23 def __init__(self):
24 super().__init__()
25 Father.__init__(self)
26 def operate(self):
27 print("我的操作猛如虎")
28 xiaoming=Son()
29 print(id(xiaoming))
以上就是类方法写法和调用,类属性写法和调用,静态方法写法和调用,魔法方法有和调用具体使用,这里不过分描述。