Python 类/对象
1. 类定义
Python是面向对象的编程语言。
Python中几乎所有的东西都是对象,拥有属性和方法。
2. 创建类
如需创建类,使用关键字class。
创建名为 MyClass 的类,属性名为 X:
class MyClass: x = 7 print(MyClass)
<class '__main__.MyClass'>
3. 创建对象
使用 Myclass 类来创建对象 p1,并打印 X 的值:
class MyClass: x = 7 p1 = MyClass() print(p1.x)
7
4. __init__()函数
上面的例子是最简单的类和对象,实际应用中并不真正有用。
理解类的含义,先了解内置函数(构造方法) __init__()
所有类都有一个名为 __init__()函数,它始终在启动类时执行。
使用 __init__() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作:
实例:
创建名为 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)
Bill
63
注释:每次使用类创建对象,都会自动调用 __init__() 函数。
5. 对象方法
对象也可以包含方法。对象中的方法是属于该对象的函数。
在 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('Bill', 63) p1.myfunc()
Hello, my name is Bill
提示:self 参数是对类当前实例的引用,用于访问属于该类的变量。
6. 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('Bill', 63) p1.myfunc()
Hello my name is Bill
7. 修改对象属性
使用 del 删除对象的属性:
实例
删除 p1 对象的 age 属性:
del p1.name p1.myfunc()
AttributeError: 'Person' object has no attribute 'name'
8. 删除对象
使用 del 删除对象:
实例
del p1
NameError: 'p1' is not defined
9. pass语句
类定义不能为空,但如果处于某种原因写了无内容的类定义语句,使用 pass 语句避免错误。
实例
class Person(): pass