Python Klasser og Objekter

Python 类/对象

Python 是一种面向对象的编程语言。

Python 中的几乎所有东西都是对象,拥有属性和方法。

类(Class)类似对象构造函数,或者是用于创建对象的“蓝图”。

创建类

如需创建类,请使用 class 关键字:

Eksempel

使用名为 x 的属性,创建一个名为 MyClass 的类:

class MyClass:
  x = 5

Kør Eksempel

创建对象

现在我们可以使用名为 myClass 的类来创建对象:

Eksempel

创建一个名为 p1 的对象,并打印 x 的值:

p1 = MyClass()
print(p1.x)

Kør Eksempel

__init__() 函数

上面的例子是最简单形式的类和对象,在实际应用程序中并不真正有用。

要理解类的含义,我们必须先了解内置的 __init__() 函数。

所有类都有一个名为 __init__() 的函数,它始终在启动类时执行。

使用 __init__() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作:

Eksempel

创建名为 Person 的类,使用 __init__() 函数为 name 和 age 赋值:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age
p1 = Person("Bill", 63)
print(p1.name)
print(p1.age)

Kør Eksempel

注释:每次使用类创建新对象时,都会自动调用 __init__() 函数。

对象方法

对象也可以包含方法。对象中的方法是属于该对象的函数。

让我们在 Person 类中创建方法:

Eksempel

插入一个打印问候语的函数,并在 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()

Kør Eksempel

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

self parameter

self Parameteren er en reference til den aktuelle instans af klassen, og bruges til at få adgang til variabler, der tilhører klassen.

Det behøver ikke at være navngivet self, du kan kalde det, hvad du vil, men det skal være en funktion i klassen.Første parameter:

Eksempel

Brug ordet mysillyobject og abc i stedet for self:

class Person:
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age
  def myfunc(abc):
    print("Hello mit navn er " + abc.name)
p1 = Person("Bill", 63)
p1.myfunc()

Kør Eksempel

Ændr objektegenskab

Du kan ændre objektets egenskaber på denne måde:

Eksempel

Sæt p1 alderen til 40:

p1.age = 40

Kør Eksempel

Slet objektegenskab

Du kan bruge del Nøgleord til at slette objektets egenskab:

Eksempel

Slet p1 objektets age egenskab:

del p1.age

Kør Eksempel

Slet objekt

Brug del Nøgleord til at slette objekt:

Eksempel

Slet p1 objekt:

del p1

Kør Eksempel

pass sætning

Klassedefinitioner kan ikke være tomme, men hvis du af en eller anden grund har skrevet en tom klassedefinitions sætning, skal du bruge pass-sætningen for at undgå fejl.

Eksempel

class Person:
  pass

Kør Eksempel