|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #coding=UTF-8
- #知识点总结
- """
- 1.继承机制可以减少代码量, 其中如果一个类A继承来自另一个类B, 则称A为B的子类, B为A的父类.继承可以使子类具有父类的各种方法和属性,
- 在继承时,可以重新定义某种属性或重写某种方法来覆盖父类原有的属性或方法,使其获得和父类不同的功能.
- 2.函数__init__ 返回为None,不能返回除了None以外的对象
- 3.函数super():在想要继承原有的__init__方法并进行修改时,在子类的 __init__ 内使用 super().__init__() 即可保留原有的内容
- 4.多重继承(钻石继承, 菱形继承): 可以同时继承多个类, 但有缺点, 尽量不要使用
- 5.组合:当继承不太适用时使用, 就是在类中把需要的类放进去实例化
- 6.对于修改类实例化对象中的变量时, 不会对类中的属性进行修改, 类中的属性就相当于静态变量,
- 当类被删除后, 类实例化对象依然可以调用方法, 因为删除的值是类的名字, 其中的方法还保留在内存中
- 5. __dict__(): 可以查看 类或类对象的实例化对象 的属性
- 6. __del__(self): 在创建的实例被删除后会被调用
- """
- #1.继承
- class Parent: #创建类
- def hello(self):
- print("正在调用父类...")
- class Child(Parent): #继承父类
- pass
- p = Parent() #实例化对象
- p.hello() #访问类的方法(函数)
- c = Child()
- c.hello()
- class Child(Parent):
- def hello(self):
- print("正在调用子类的方法...")
- c = Child()
- c.hello()
- #2.继承
- import random as r
- class Fish:
- def __init__(self):
- self.x = r.randint(0, 10)
- self.y = r.randint(0, 10)
- def move(self):
- self.x -= 1
- print("我的位置是: ", self.x, self.y)
- class Goldfish(Fish):
- pass
- class Carp(Fish):
- pass
- class Salmon(Fish):
- pass
- class Shark(Fish):
- def __init__(self):
- super().__init__() #可保留_init原有的内容
- self.hungry = True
- def eat(self):
- if self.hungry:
- print("吃吃吃")
- self.hungry = False
- else:
- print("吃饱了")
- a=Shark()
- for i in range(3):
- a.eat() #已实例化,self可以不用写
- c=Goldfish()
- for i in range(3):
- c.move()
- b=Fish()
- for i in range(3):
- b.move()
- #3.组合
- #助记:当遇到 水里有鱼,天上有鸟 这种情况时使用组合;当遇到 鲤鱼是鱼,相思鸟是鸟 这种情况时使用继承
- class Turtle:
- def __init__(self, x):
- self.num = x
- class Fish:
- def __init__(self, x):
- self.num = x
- class Pool:
- def __init__(self, x, y):
- self.turtle = Turtle(x) # 组合乌龟类进来
- self.fish = Fish(y) # 组合鱼类进来
- def print_num(self):
- print("水池里总共有乌龟 %d 只,小鱼 %d 条!" % (self.turtle.num, self.fish.num))
- pool = Pool(1, 10)
- pool.print_num()
- #4.
- class C:
- num = 0 #num和count为类属性
- def __init__(self):
- self.x = 4 #x和y为实例属性
- self.y = 5
- C.count = 6
- a=C()
- print(a.x)
- del C
- print(a.x)
- print(C.x)
复制代码 |
|