Python luokat ja objektit

Python 类/对象

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

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

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

创建类

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

Esimerkki

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

class MyClass:
  x = 5

Suorita esimerkki

创建对象

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

Esimerkki

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

p1 = MyClass()
print(p1.x)

Suorita esimerkki

__init__() 函数

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

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

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

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

Esimerkki

创建名为 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)

Suorita esimerkki

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

对象方法

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

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

Esimerkki

插入一个打印问候语的函数,并在 p1 对象上执行它:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age
  def myfunc(self):
    print("Hei, minun nimeni on " + self.name)
p1 = Person("Bill", 63)
p1.myfunc()

Suorita esimerkki

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

self-parametri

self parametri on luokan nykyisen instanssin viittaus, jota käytetään luokan muuttujien

Se ei tarvitse olla self, voit kutsua sitä vapaasti, mutta se on oltava luokan minkä tahansa funktionEnsimmäinen parametri:

Esimerkki

Käytä sanoja mysillyobject ja abc korvaamaan self:

class Person:
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age
  def myfunc(abc):
    print("Hei, nimeni on " + abc.name)
p1 = Person("Bill", 63)
p1.myfunc()

Suorita esimerkki

Muuta objektin ominaisuutta

Voit muuttaa objektin ominaisuutta tällä tavalla:

Esimerkki

Aseta p1:n ikä arvoon 40:

p1.age = 40

Suorita esimerkki

Poista objektin ominaisuus

Voit käyttää del Avainsana poista objektin ominaisuus:

Esimerkki

Poista p1-objektin age-ominaisuus:

del p1.age

Suorita esimerkki

Poista objekti

Käytä del Avainsana poista objekti:

Esimerkki

Poista p1-objekti:

del p1

Suorita esimerkki

pass-lause

Luokan määrittely ei voi olla tyhjä, mutta jos kirjoitat tyhjän luokan määrittelyn jostain syystä, käytä pass-lauseen estääksesi virheen.

Esimerkki

class Person:
  pass

Suorita esimerkki