编程基础|Python中的类和对象
Python中的类和对象是面向对象编程的基本概念。类是一种抽象的数据类型,用来定义一组具有相同属性和方法的对象。对象是类的实例,也就是具体的数据和行为。Python中一切皆对象,包括函数,模块,甚至类本身。
创建一个类
要创建类,使用关键字class:
创建一个名为 MyClass 的类,其属性名为 x:
class MyClass:
x = 5
创建对象
使用名为 MyClass 的类来创建对象:
创建一个名为 p1 的对象,并打印 x 的值:
p1 = MyClass()
print(p1.x)
__init__() 函数
上面的示例是最简单形式的类和对象,在现实生活应用程序中并没有真正的用处。
要理解类的含义,必须理解内置的 __init__() 函数。
所有类都有一个名为 __init__() 的函数,该函数始终在类启动时执行。
使用 __init__() 函数为对象属性,或者创建对象时需要执行的其他操作:
创建一个名为 Person 的类,使用 __init__() 函数为姓名和年龄赋值:
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)
输出:<__main__.Person object at 0x0000000009276C88>
使用 __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)
输出:John(36)
对象方法
对象还可以包含方法。对象中的方法是属于该对象的函数。
在Person类中创建一个方法:
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()
输出:Hello my name is John
注意:参数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()
输出:Hello my name is John
修改对象属性
将p1的年龄设置为40:
p1.age = 40
删除对象属性
使用 del关键字删除对象的属性:
从 p1 对象中删除age属性:
del p1.age
删除对象
使用del关键字删除对象:
删除p1对象:
del p1
class定义不能为空,但如果由于某种原因您的class定义没有内容,请放入该pass语句以避免出现错误。
class Person:
pass