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

文章 > Python基础教程 > 初识python中的类

初识python中的类

头像

silencement

2019-06-28 12:00:203106浏览 · 0收藏 · 0评论

类是什么

类是一种组合信息和行为的方式。举个例子,我们考虑在物理仿真中建造一个飞船。首先要做的就是追踪飞船的坐标(x, y)。飞船在代码中的形式如下:

class Rocket():
    
    def __init__(self):
        # Each rocket has an (x, y) position
        self.x = 0
        self.y = 0

在类中要做的第一件事就是定义 __init__ 函数。当对象被创建时,__init__ 函数就会执行,为需要的参数设置初始值。self 以后会介绍,总之,它是一个可以让你访问类中变量的语法。

目前为止,Rocket 类存储了两部分的信息,但是它什么也做不了。Rocket 类的第一个核心的行为是:移动。代码如下所示:

class Rocket():
    # Rocket simulates a rocket ship for a game,
    #  or a physics simulation.
    
    def __init__(self):
        # Each rocket has an (x,y) position.
        self.x = 0
        self.y = 0
        
    def move_up(self):
        # Increment the y-position of the rocket.
        self.y += 1

现在 Rocket 类存储了一些信息,并且能做一些事情。但是你还没有真正建造一艘自己的飞船。接下来就是建造自己的飞船了,代码如下:

class Rocket():
    # Rocket simulates a rocket ship for a game,
    #  or a physics simulation.
    
    def __init__(self):
        # Each rocket has an (x,y) position.
        self.x = 0
        self.y = 0
        print("Created")
        
    def move_up(self):
        # Increment the y-position of the rocket.
        self.y += 1

# Create a Rocket object.
my_rocket = Rocket()
print(my_rocket)

为了使用类,创建一个变量如 my_rocket 。然后用类名后跟圆括号给这个变量赋值。这样就创建了一个类的对象。对象是类的实例,它有类中所有变量的拷贝,并且可以做类中所有定义的行为。在上述代码中,你可以看到变量 my_rocket 是一个来自 __main__ 程序文件中的 Rocket 对象,这个程序文件存储在内存中的特定位置。

有了类你就可以定义对象并且使用它的方法。实例如下:

class Rocket():
    # Rocket simulates a rocket ship for a game,
    #  or a physics simulation.
    
    def __init__(self):
        # Each rocket has an (x,y) position.
        self.x = 0
        self.y = 0
        
    def move_up(self):
        # Increment the y-position of the rocket.
        self.y += 1

# Create a Rocket object, and have it start to move up.
my_rocket = Rocket()
print("Rocket altitude:", my_rocket.y)

my_rocket.move_up()
print("Rocket altitude:", my_rocket.y)

使用对象名和点符号来访问对象的变量和方法。因此为了得到 my_rocket 的 y 值,使用 my_rocket.y 。使用 my_rocket.move_up() 来访问 move_up() 函数。

一旦类定义好,你就可以创建任意数量的对象。每个对象都有独立的变量空间,互不影响。如下所示:

class Rocket():
    # Rocket simulates a rocket ship for a game,
    #  or a physics simulation.
    
    def __init__(self):
        # Each rocket has an (x,y) position.
        self.x = 0
        self.y = 0
        
    def move_up(self):
        # Increment the y-position of the rocket.
        self.y += 1
        
# Create a fleet of 5 rockets, and store them in a list.
my_rockets = []
for x in range(0,5):
    new_rocket = Rocket()
    my_rockets.append(new_rocket)

# Show that each rocket is a separate object.
for rocket in my_rockets:
    print(rocket)

如果你知道列表推导式,你也可以将代码改写成如下形式:

class Rocket():
         # Rocket simulates a rocket ship for a game,# Rocket 
    #  or a physics simulation.
    
    def __init__(self):
        # Each rocket has an (x,y) position.
        self.x = 0
        self.y = 0
        
    def move_up(self):
        # Increment the y-position of the rocket.
        self.y += 1
        
# Create a fleet of 5 rockets, and store them in a list.
my_rockets = [Rocket() for x in range(0,5)]

# Show that each rocket is a separate object.
for rocket in my_rockets:
    print(rocket)

每一个 rocket 在内存中都是独立的。拥有自己的 x 和 y 。你可以通过移动不同的飞船来证明这点。如下所示:

class Rocket():
    # Rocket simulates a rocket ship for a game,
    #  or a physics simulation.
    
    def __init__(self):
        # Each rocket has an (x,y) position.
        self.x = 0
        self.y = 0
        
    def move_up(self):
        # Increment the y-position of the rocket.
        self.y += 1
        
# Create a fleet of 5 rockets, and store them in a list.
my_rockets = [Rocket() for x in range(0,5)]

# Move the first rocket up.
my_rockets[0].move_up()

# Show that only the first rocket has moved.
for rocket in my_rockets:
    print("Rocket altitude:", rocket.y)

现在类的语法对你来说或许不是很明了。但是考虑不用类来创建一个飞船。你或许会将 x 和 y 存储在一个字典中,即便是定义很少的飞船都需要写出很多丑陋的,难以维护的代码。当加入越来越多的特性,代码会变得越来越难以维护。这时候你就会发现基于真实世界模型的类是多么的高效。

关注

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

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

坐在竹马鸡上背单词小说| 把她日出水了好紧大爽了视频| 兄弟的老婆4免费观看电视剧| 谷原希美| 未满十八岁请自动离开的英语| BOBO浏览器老司机模式改版特..| 十大禁片| 打扑克不盖被子| 天美麻花星空影视免费观看电视剧| 男生手进入是什么感觉| 白带内裤拉丝尿液| 日本双人xX00吃奶视频| 《法国空乘8》电影| 人犬兽人在线观看免费完整| 女性真人外生图片大全| 西安天上人间| 免费的行情网站WWW下载大全| 二人努力生猴子免费观看| 小蜜桃免费观看高清电视剧| 星空传媒天美传媒有限公司| 苍井空| 《交换温柔》免费观看全集完整版| 女性下面摸起来有很多疙瘩| 《女朋友的妹妹3》| 姐姐的闺蜜2字ID高冷霸气| 禁忌2| 欧美片《肉欲进入》| 公憩止痒小说原著叫什么名字| 精品人妻人人爽久久爽AV敬礼| 免费外国网站浏览器推荐| 《部长你别这样》大结局| 黄瓜视频| 男女一起愁愁愁免费观看全集高清 | 白日梦我电视剧免费观看完整版 | 《性爽2》电影| 《请好好疼爱里面》免费观看| 《浴室吃奶2》无删减| 宝贝今天可不可以不带小雨伞 | 公交车大肉大捧一进一出好爽| 美国伦理《轻佻寡妇》| 15岁女初中生免费观看电视剧