创建类
如果想要在Python中创建类需要用到class关键字:
实例
class MyClass:
x = 5
运行结果
<class '__main__.MyClass'>
init()函数
所有类都有一个名为__init__()的函数,他始终在启动类时执行
当每次使用类创建新对象时,都会自动调用__init__()函数
实例
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
对象方法
对象也可以包含方法,对象中的方法是属于该对象的函数。
一般是在类中创建方法
实例
插入一个问候的函数,并且调用该方法
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参数
self 参数是对类的当前实例的引用,用于访问属于 该类的变量。
它不必被命名为 self,您可以随意调用它,但它必须是类中任意函数的首个参数,self就是代表自己。
实例
使用单词book和bab代替self
class Person:
def __init__(book, name, age):
book.name = name
book.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("Bill", 63)
p1.myfunc()
运行结果
Hello my name is Bill
修改对象的属性
实例
您可以通过调用所创建的实例对象进行重新赋值
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my age is " + abc.age)
p1 = Person("Bill", 63)
p1.age = 40
p1.myfunc()
运行结果
Hello my age is 40
删除对象属性
可以用del关键字来删除对象的属性
实例
删除p1对象的age属性
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Bill", 63)
del p1.age
print(p1.age)
运行结果会报错
如下
Traceback (most recent call last):
File "demo_class7.py", line 13, in <module>
print(p1.age)
AttributeError: 'Person' object has no attribute 'age'
删除对象
同样也是使用del关键字删除对象
实例
删除p1对象
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Bill", 63)
del p1
print(p1)
运行结果同样也会保存
Traceback (most recent call last):
File "demo_class8.py", line 13, in <module>
print(p1)
NameError: 'p1' is not defined
会显示p1这个对象不存在
pass语句
类定义不能为空,但是如果您处于某种原因写了无 内容的类定义语句,请使用 pass 语句来避免错误。
实例
class Person:
pass
运行结果因为是空的所以什么都不会显示