Py程序员

说说在 Python 中如何创建与使用类

2019-03-23  本文已影响17人  deniro

面向对象编程是一种最有效的软件编写方式。 在面向对象编程中, 我们可以编写表示现实世界中的事物和情景的类, 并基于这些类来创建对象。 编写类时, 我们可以定义一种事物类都具有的通用行为。 基于这个类创建对象时, 每个对象都会自动具备这种行为, 然后根据需要赋予其中每个对象独特的个性。 这样就可以模拟出现实世界的场景。

假设,我们需要创建一个 User 类,用于定义账号信息。

class User():
    '''账号信息'''

    def __init__(self, name, pwd):
        '''初始化'''
        self.name = name
        self.pwd = pwd

    def valid(self):
        '''是否验证通过'''
        print(self.name + ' 验证通过')


1 初始化方法 __init__()

当我们根据某个类来创建实例时,就会调用该方法 __init__()。 在这个方法的名称中, 开头和末尾各有两个下划线, 这是 Python 的约定, 这样可以避免与 Python 的默认方法或普通方法发生名称冲突 。

这里的方法 __init__() 包含三个形参: self 、 name 和 pwd。注意: 必须要有形参 self, 而且必须位于其他形参的之前。 创建类实例时, 就会动传入实参 self 。 调用每个与类相关联的方法,都会自动传递实参 self , 它是一个指向实例本身的引用, 通过它,可以让实例能够访问类中的属性和方法。

这里,我们在方法 __init__() 中,定义了两个变量,姓名与密码。以 self 为前缀的变量都可以供类中的所有方法调用, 我们还可以通过类的任何实例来访问这些变量。 这些变量称为类的属性。

2 创建实例

现在,让我们创建一个账号实例。

class User():
   ...


#  创建实例
deniro_user = User('Deniro', '1')
print('账号名:' + deniro_user.name)
print('密码:' + deniro_user.pwd)

运行结果:

账号名:Deniro
密码:1

可以使用句点表示法来访问实例的属性。

注意: 类与实例命名约定: 首字母大写的名称( 如 User ) 指的是类, 而
小写的名称( 如 deniro_user ) 指的是依据类创建的实例。

3 调用方法

也可以使用句点表示法,来调用类定义的任何方法。

class User():
   ...


#  创建实例
deniro_user = User('Deniro', '1')

# 调用实例方法
deniro_user.valid()

运行结果:

Deniro 验证通过

建议为属性和方法取一个合适的描述性名称,这样有助于维护和理解这些代码。

4 创建多个实例

lass User():
  ...


#  创建实例
deniro_user = User('Deniro', '1')
print('账号名:' + deniro_user.name)  # 访问实例属性
print('密码:' + deniro_user.pwd)

lily_user = User('Lily', '2')
print('账号名:' + lily_user.name)  # 访问实例属性
print('密码:' + lily_user.pwd)

# 调用实例方法
deniro_user.valid()
lily_user.valid()

运行结果:

账号名:Deniro
密码:1
账号名:Lily
密码:2
Deniro 验证通过
Lily 验证通过

创建的每一个实例,都是独立的, 都拥有自己的一组属性,而且能够执行相同的方法。

我们可以根据需求,为一个类创建任意数量的实例。

上一篇下一篇

猜你喜欢

热点阅读