Python 类/对象
Python 是一种面向对象的编程语言。
Python 中的几乎所有东西都是对象,拥有属性和方法。
类(Class)类似对象构造函数,或者是用于创建对象的“蓝图”。
创建类
class
关键字用来创建类
class MyClass:
x = 5
创建对象
创建类后,需要创建对象来调用类
class MyClass:
x = 5
p1 = MyClass()
print(p1.x)
上面的例子是最简单形式的类和对象,在实际应用程序中并不真正有用。
init() 函数
所有类都有一个名为 __init__()
的函数,__init__()
函数在启动类时执行
使用 init() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
if __name__ == "__main__":
p1 = Person("Tom", 18)
print(p1.name)
print(p1.age)
注意:每次使用类创建新对象时,都会自动调用 __init__()
函数。
对象方法
对象也可以包含方法,对象中的方法是属于该对象的函数
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
if __name__ == "__main__":
p1 = Person("Tom", 18)
p1.myfunc()
提示:self 参数是对类的当前的引用,用于访问属于该类的变量。
self 参数
self
参数是对类的当前的引用,用于访问该类访问范围内的变量
它不必被命名为self
,可以定义为任何名称,但它必须是类中任意函数的首个参数
class Person:
def __init__(myself, name, age):
myself.name = name
myself.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
if __name__ == "__main__":
p1 = Person("Tom", 18)
p1.myfunc()
修改对象属性
您可以这样修改对象的属性
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
if __name__ == "__main__":
p1 = Person("Tom", 18)
p1.age = 81
print(p1.age)
删除对象属性
您可以使用del
关键字删除对象的属性
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
if __name__ == "__main__":
p1 = Person("Tom", 18)
del p1.age
print(p1.age)
注意:AttributeError这个错误就是说python找不到对应的对象的属性
删除对象
使用del
关键字删除对象
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
if __name__ == "__main__":
p1 = Person("Tom", 18)
del p1
print(p1)
注意:NameError是未命名错误
pass 语句
类定义不能为空,但是如果您处于某种原因写了无内容的类定义语句,请使用 pass 语句来避免错误
class Person:
pass