国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > Shuttle类如何在python3中生成?

Shuttle类如何在python3中生成?

头像

小妮浅浅

2020-11-16 17:29:563083浏览 · 0收藏 · 0评论

之前提到过很多继承的内容,包括子类和父类其实也归属于这个问题。我们今天所要讲的Shuttle不完全用的是这一个类,还会涉及到继承另一个类的问题,这些话小编写在开头,以免给python初学者造成了不必要的误解。接下来就Shuttle类在python3中的生成操作,我们通过一个航天飞机的例子来讲解。


如果你想模拟一个航天飞船,你可能要写一个新的类。但是航天飞机是火箭的一种特殊形式。你可以继承 Rocket 类,添加一些新的属性和方法,生成一个 Shuttle 类而不是新建一个类。

航天飞船的一个重要特性是他可以重用。因此我们添加记录航天飞船服役的次数。其他基本和 Rocket 类相同。

实现一个 Shuttle 类,如下所示:

from math import sqrt
 
class Rocket():
    # Rocket simulates a rocket ship for a game,
    #  or a physics simulation.
    
    def __init__(self, x=0, y=0):
        # Each rocket has an (x,y) position.
        self.x = x
        self.y = y
        
    def move_rocket(self, x_increment=0, y_increment=1):
        # Move the rocket according to the paremeters given.
        #  Default behavior is to move the rocket up one unit.
        self.x += x_increment
        self.y += y_increment
        
    def get_distance(self, other_rocket):
        # Calculates the distance from this rocket to another rocket,
        #  and returns that value.
        distance = sqrt((self.x-other_rocket.x)**2+(self.y-other_rocket.y)**2)
        return distance
    
class Shuttle(Rocket):
    # Shuttle simulates a space shuttle, which is really
    #  just a reusable rocket.
    
    def __init__(self, x=0, y=0, flights_completed=0):
        super().__init__(x, y)
        self.flights_completed = flights_completed
        
shuttle = Shuttle(10,0,3)
print(shuttle)


当一个子类要继承父类时,在定义子类的圆括号中填写父类的类名:

class NewClass(ParentClass):

新类的 __init__() 函数需要调用新类的 __init__() 函数。新类的 __init__() 函数接受的参数需要传递给父类的 __init__() 函数。由 super().__init__() 函数负责:

class NewClass(ParentClass):
    
    def __init__(self, arguments_new_class, arguments_parent_class):
        super().__init__(arguments_parent_class)
        # Code for initializing an object of the new class.

super()函数会自动将self参数传递给父类。你也可以通过用父类的名字实现,但是需要手动传递self参数。如下所示:

class Shuttle(Rocket):
    # Shuttle simulates a space shuttle, which is really
    #  just a reusable rocket.
    
    def __init__(self, x=0, y=0, flights_completed=0):
        Rocket.__init__(self, x, y)
        self.flights_completed = flights_completed

这样写看起来可读性更高,但是我们更倾向于用 super() 的语法。当你使用 super() 的时候,不必关心父类的名字,以后有改变时会变得更加灵活。而且随着继承的学习,以后可能会出现一个子类继承自多个父类的情况,使用 super() 语法就可以在一行内调用所有父类的 __init__() 方法。

今天Shuttle的内容比较多,结合了科技类的航天飞机,两者都成了难以理解的内容了。小伙伴们不要灰心,多试几遍就可以了。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

女人被狂躁到高潮20次 | 王局长把乳罩解开吃胸的动态图| 三人互换麦子| 轮流和两个男人一起很容易染病吗 | 来吧儿子妈妈是纯还是仿| 男人吃过女人乳房后会断联吗| 妈妈的闺蜜| 蜜桃视频| 女性抹胸开襟哺乳衣的注意事项| 日本《暴力强伦轩》| 台湾《洞门为君开》演员表| 舒淇与黑人性猛交| 《美丽妻子替夫还债》剧情| 《酒店激战》动漫1-5集免费观..| 《漾出OVER FLOWER》…| 双男床上剧烈运动会怎么消除| 他的大手在秘密花园小说免费阅读 | 角色 电影| 15岁的少女与狗高清电视| 水蜜桃免费观看电视剧最新章节| 啄木鸟军舰女兵3法版| 豆传媒剧国产MV有什么特点| 双龙戏珠3父子免费阅读全文| 秘书奶头好大下面好紧| 侯门闺房HLH笔趣阁在线阅读免..| 人间水蜜桃MAC923| 宅男影院| 《妻子的肉体偿还》5| 解开她的扣子伸进她的胸罩| 公交车被上高湖了还能坐吗小说| 年轻的姐妹2| 海棠书屋免费无弹窗全文阅读| 女人被狂躁到高潮20次| 李丽珍爱的精灵| 台剧《恋爱之瘾》小蓝| 女生脱了衣服给男生摸| 郑云龙| 妈妈你真棒插曲视频快来救救我| 泰剧《劈开你的腿》免费观看| 扌击辶鬲的小说父女| 浅仓彩音