首页 > 技术文章 > python 类与对象

2zly 2020-05-01 22:31 原文

创建类

如果需创建一个类,那么可以使用 class 关键字:
实例
使用名为 a 的属性,创建一个名为 MyClass 的类:

class MyClass:
  a = 6

创建对象

现在我们可以使用名为 myClass 的类来创建对象:
实例
创建一个名为 p1 的对象,并打印 x 的值:

p1 = MyClass()
print(p1.x)

init() 函数

上面的例子是最简单形式的类和对象,在实际应用程序中并不真正有用。
要理解类的含义,我们必须先了解内置的 init() 函数。
所有类都有一个名为 init() 的函数,它始终在启动类时执行。
使用 init() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作:
实例
创建名为 Person 的类,使用 init() 函数为 name 和 age 赋值:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

p1 = Person("Bille", 64)

print(p1.name)
print(p1.age)

结果为:
Bille
64

注:每次使用类进行创建新对象的时候,都会自动调用 init() 函数。

对象方法

对象也可以包含方法。对象中的方法是属于该对象的函数。
实例
插入一个打印问候语的函数,并在 p1 对象上执行它:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def myfunc(self):
    print("Hello my name is " + self.name)

p1 = Person("Bill
", 63)
p1.myfunc()

提示:self 参数是对类的当前实例的引用,用于访问属于该类的变量。

self 参数

self 参数是对类的当前实例的引用,用于访问属于该类的变量。
它不必被命名为 self,您可以随意调用它,但它必须是类中任意函数的首个参数:
实例
使用单词 mysillyobject 和 abc 代替 self:

class Person:
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age

  def myfunc(abc):
    print("Hello my name is " + abc.name)

p1 = Person("Bille", 64)
p1.myfunc()

修改对象的属性

您还可以这样去修改对象的属性:
实例
把 p1 的年龄设置为 50:

p1.age = 50

删除对象的属性

您可以使用 del 关键字删除对象的属性:
实例
删除 p1 对象的 age 属性:

del p1.age

删除对象

使用 del 关键字删除对象:
实例
删除 p1 对象:

del p1

推荐阅读