📜  Python中的面向对象编程1(类,对象和成员)

📅  最后修改于: 2020-04-07 07:47:37             🧑  作者: Mango

下面是一个简单的Python程序,它使用单个方法创建一个类。

# 一个简单的类
class Test:
    # 一个简单的方法
    def fun(self):
        print("Hello")
# 测试代码
obj = Test()
obj.fun()

输出:

Hello

正如我们在上面看到的,我们使用class语句和类名创建一个新类。紧随其后的是缩进语句块,它们构成了类的主体。在这种情况下,我们在类中定义了一个方法。
接下来,我们使用该类的名称和一对括号创建该类的对象/实例。

self

  1. 类方法在方法定义中必须有一个额外的第一个参数self。调用方法时,我们不会为该参数提供值,Python提供了它
  2. 如果我们有一个不带任何参数的方法,那么我们仍然必须有一个参数–self。请参见上面的简单示例中的fun()。
  3. 这类似于C++中的此指针和Java中的this引用。

当我们将此对象的方法称为myobject.method(arg1,arg2)时,它会被Python自动转换为MyClass.method(myobject,arg1,arg2)–这就是所有特殊的self

__init__方法
__init__方法类似于C++和Java中的构造函数。实例化类的对象后立即运行。该方法对于您要对对象进行的初始化非常有用。

# 简单的类,有初始化函数
class Person:
    #初始化函数,或者构造函数
    def __init__(self, name):
        self.name = name
    # 方法
    def say_hi(self):
        print('你好,我叫', self.name)
p = Person('芒果文档')
p.say_hi()

输出:

你好,我叫 芒果文档

在这里,我们将__init__方法定义为采用参数名称(以及通常的self)。

类和实例变量(或属性)
在Python中,实例变量是其值在带有self的构造函数或方法中分配的变量。类变量是其值在类中分配的变量。

# Python展示实例变量是其值在带有self的构造函数或方法中分配的变量。类变量是其值在类中分配的变量。
# 一个计算机专业学生的类
class CSStudent:
    # 类变量
    stream = 'cse'
    # 构造函数
    def __init__(self, roll):
        # 对象变量
        self.roll = roll
# CSStudent类的对象
a = CSStudent(101)
b = CSStudent(102)
print(a.stream)  # 打印 "cse"
print(b.stream)  # 打印 "cse"
print(a.roll)    # 打印 101
# 类变量可以用类名访问
print(CSStudent.stream) # prints "cse"

我们也可以在普通方法中定义实例变量。

# Python程序,展示我们在方法内创建对象变量
# 一个计算机专业学生的类
class CSStudent:
    # Class变量
    stream = 'cse'
    # The init method or constructor
    def __init__(self, roll):
        # 对象变量、
        self.roll = roll
    # 增加对象变量
    def setAddress(self, address):
        self.address = address
    # 获取对象变量
    def getAddress(self):
        return self.address
# 测试代码
a = CSStudent(101)
a.setAddress("芒果文档, 雄起")
print(a.getAddress())

输出:

芒果文档, 雄起

如何创建一个空类?
我们可以使用Python中的pass语句创建一个空类。

# 一个空类
class Test:
    pass