类
类,简单理解它就像一个图纸,类就是对象的图纸
类就是一个用来创建对象的对象!
类就是一个对象!
类是type类型的对象,定义类实际上就是定义了一个type类型的对象
类也称对象为类的实例(
instance
)比如, int() float() bool() str() list() dict() ... 这些都是类,只是这些都是python内部特有的类
1.创建类语法
class MyClass():
pass
mc = MyClass() # mc就是通过MyClass创建的对象,他们都是一类对象
mc_2 = MyClass()
isinstance(mc, MyClass) # isinstance() 用来检查一个对象是否是一个类的实例
res = isinstance(mc, MyClass)
print(res) # True
2.类的属性和方法
在类的代码块中,我们可以定义变量和函数(即称为方法)
在类中定义的变量,将会成为所有的实例的公共属性
所有的实例都可以访问这些属性
所有的实例都可以通过
对象.方法名()
形式调用如果方法调用,默认会传递一个参数,所以方法中至少要定义一个形参
class Person:
name = '孙悟空'
def say_hello(self):
print('你好!')
p1 = Person()
p1.say_hello()
print(p1.name)
'''
你好!
孙悟空
'''
class Person:
name = '孙悟空'
def say_hello(self):
print('你好!%s' % self.name)
p1 = Person()
p2 = Person()
p1.name = 'p1'
p2.name = 'p2'
p1.say_hello()
p2.say_hello()
'''
你好!p1
你好!p2
'''
3.类的初始化
1)创建类的流程
p1 = Person() 的运行流程 1.创建一个变量 2.在内存中创建一个新对象
3.__ init __(self)方法执行 4.将对象的id赋值给变量
在类中可以定义一些特殊方法(魔术方法)
特殊方法都是以
__
开头,__
结尾的方法特殊方法不需要自己调用,特殊时刻自动调用
举例:
class Person:
def __init__(self):
print('hello')
def say_hello(self):
print('你好!%s' % self.name)
p1 = Person()
'''
hello
'''
2)类的基本结构
class 类名([父类])
公共属性...
# 对象的初始化方法
def __ init __(self, xxx)
psss
#其它方法
def method_1 (self, xxx)
psss
def method_2 (self, xxx)
pass
.......
class Person:
def __init__(self, name):
self.name = name
def say_hello(self):
print('你好!%s' % self.name)
p1 = Person('我是p1')
print(p1.name)
p1.say_hello()
'''
我是p1
你好!我是p1
'''
3)练习 — 创建一个狗狗的类
class Dog:
def __init__(self, name, age, eat):
self.name = name
self.age = age
self.eat = eat
def eating(self):
print(self.name + '在开心地吃着%s' % self.eat)
def run(self):
print('%s在快乐的奔跑呀'% self.name)
dog = Dog('大黄', 3, '骨头')
dog.eating()
dog.run()
'''
大黄在开心地吃着骨头
大黄在快乐的奔跑呀
'''