Python基础知识点-- 类

    此文章为Python基础知识点(从入门到实践)--  类,此节Python基础知识点主要包括:创建和使用类、使用类和实例、继承、导入类、类编码风格。



       面向对象编程时是最有效的软件编写方法 之一,在面向对象编程中,我们编写表示现实世界中事务和情景的类,并基于这些类来创建对象。编写类时,我们定义一大类对象都有的通用行为。基于类创建对象时,每个对象都自动具备这种通用行为。根据类来创建对象称为实例化,这让我们能够使用类的实例。

一、创建和使用类

   使用类几乎可以模拟任何东西。下面1.1展示一个简单的例子:

1.1 创建 Dog 类

       根据Dog类创建的每个实例都将存储名字和年龄,我们赋予了每条小狗蹲下和打滚的能力:

class Dog:
    """一次模拟小狗的简单尝试。"""

    def __init__(self,name,age):
        """初始化属性name和age。"""
        self.name = name #4
        self.age = age

    def sit(self):
        """模拟小狗收到命令时蹲下"""
        print(f'{self.name} is noe sitting.')

    def roll_over(self):
        '''模拟小狗收到命令时打滚'''
        print(f'{self.name} is rolled over!.')

       根据约定,在python中,首字母大写的名称指的是类。这个类定义中没有圆括号,因为要从空白创建这个类。第二行编写了一个文档字符串,对这个类的功能做了描述。

方法_init_()

      类中的函数称为方法。前面学到的有关函数的一切都适用于方法,唯一重要的差别是调用方法的方式。方法 _init_() 是个特殊方法,每当根据 Dog 类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免python默认方法与普通方法发生名称冲突。务必确保 _init()_  的两边都有两个下划线,否则当使用类来创建实例时,将不会自动调用这个方法,进而引发难以发现的错误。

       我们将方法 _init()_ 定义成包含三个形参:self、name和age。在此方法中 self 必不可少,而且必须位于其他形参的前面。在python方法来创建Dog实例时将自动传递实参 self 。每个实例相关联的方法调用都自动传递实参self。它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

       4处定义的两个变量都有前缀 self。以 self 为前缀的变量可提供类中的所有方法使用,可以通过类的任何实例来访问。self.name = name 获取与形参name相关联的值,并将其赋给变量name,然后该变量被关联到当前创建的实例。self.age = age 的作用与此类似。像这样可通过实例访问的变量称为属性

       Dog类还定义了两个另外方法:sit()和 roll_over() 。这些方法执行时不需要额外的信息,因此它们只有一个形参 self。随后将创建的实例能够访问这些方法,换句话说,他们都会蹲下和打滚。

1.2 根据类创建实例

       可将类视为有关如何创建实例的说明。Dog 类一系列说明,让python知道如何创建表示特定小狗的实例。

下面来创建一个表示特定小狗的实例:

class Dog:
     --snip--

my_dog = Dog('Willie',7)

print(f"My dog's name is {my_dog.name}." ) #2
print(f"My dog is {my_dog.age} years old.") #3

       这里使用的是前一个示例中编写的 Dog 类。首先让 python 创建一条名字为”Willie“,年龄为‘7’的小狗的信息。遇到代码时,python使用实参‘Willie’和7调用Dog类的方法_init_()。方法_init_() 创建一个表示特定小狗的实例,而我们将这个实例赋给了变量 my_dog 。在这里,命名约定很有用:通常可认为首字母大写的名称(如Dog)指的是类,而小写的名称(如my_dog)指的是根据类创建的实例。

1. 访问属性

      要访问实例的属性,可使用句点表示法。2处编写了如下代码来访问 my_dog 的属性name的值:

my_dog.name

      句点表示法在python中很常用,这种语法演示了python如何获悉属性的值。在这里,python先找到实例 my_dog ,再查找与该实例相关联的属性name。在Dog类中引用这个属性时,使用的是self.name。在3

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值