Python 类和对象
Python 类/对象
Python 是一种面向对象的编程语言。
Python 中的几乎所有东西都是对象,都具有属性和方法。
类就像一个对象构造函数,或者是创建对象的“蓝图”。
创建类
要创建一个类,请使用关键字 class
创建对象
现在我们可以使用名为 MyClass 的类来创建对象
__init__() 函数
上面的例子展示了最简单的类和对象形式,在实际应用中并没有什么用处。
要理解类的含义,我们需要理解内置的 __init__() 函数。
所有类都有一个名为 __init__() 的函数,它在类被初始化时总是被执行。
使用 __init__() 函数为对象的属性赋值,或者执行其他在创建对象时必需的操作。
示例
创建一个名为 Person 的类,使用 __init__() 函数为 name 和 age 赋值
class Person
def __init__(self, name, age)
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1.name)
print(p1.age)
自己动手试一试 »
注意: 每次使用类创建新对象时,__init__() 函数都会自动调用。
__str__() 函数
__str__() 函数控制当类对象被表示为字符串时应该返回什么。
如果未设置 __str__() 函数,则返回对象的字符串表示形式。
示例
没有 __str__() 函数的对象的字符串表示形式
class Person
def __init__(self, name, age)
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1)
自己动手试一试 »
示例
带有 __str__() 函数的对象的字符串表示形式
class Person
def __init__(self, name, age)
self.name = name
self.age = age
def __str__(self)
return f"{self.name}({self.age})"
p1 = Person("John", 36)
print(p1)
自己动手试一试 »
对象方法
对象也可以包含方法。对象中的方法是属于该对象的函数。
让我们在 Person 类中创建一个方法。
示例
插入一个打印问候语的函数,并在 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("John", 36)
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("John", 36)
p1.myfunc()
自己动手试一试 »
修改对象属性
你可以像这样修改对象的属性
删除对象属性
你可以使用 del
关键字删除对象中的属性。
删除对象
你可以使用 del
关键字删除对象。
pass 语句
class
定义不能为空,但如果你出于某种原因有一个没有内容的 class
定义,请使用 pass
语句来避免错误。