类就是具有相同属性和功能的一类事物
对象就是类的具体表现,是面向对象编程的核心
定义类: class 类名(): 类中的代码(属性/方法) 类三要素:类名(符合大驼峰的命名风格)、属性(对象的特征描述)、方法(对象具有的行为)
# 定义一个类Washer
class Washer():
height=800
# 创建对象、实例一个对象 Washer的对象
# 对象名=类名()
haier=Washer() #<__main__.Washer object at 0x0000027508656548>
print(haier) #<__main__.Washer object at 0x0000027508656548>
# 对象对类中的属性进行操作
print(haier.height) #800
#类型二:
class Watch():
# 定义方法
def look(self): #self指的是调用当前函数的对象
print(self) #<__main__.Watch object at 0x000001C206F065C8>
print('看电视') #看电视
# 创建对象/实例化对象
watchs=Watch()
watchs.look()
添加/获取对象属性
# 定义一个对象
class Person():
name='adsk'
def p_info(self):
print('你好')
# 创建对象
yry01=Person()
# 类外面添加对象属性:对象名.属性名=值
yry01.age=18
print(yry01.age) #18 测试一下添加成功没
# 类的里面添加/获取属性
# 定义一个对象
class Person():
name='yry'
def p_info(self):
print('你好')
# 类的里面添加/获取属性
print(f'我叫{self.name},我今年{self.age}')
# 创建对象
yry01=Person()
yry01.age=18
print(yry01.p_info()) #我叫yry,我今年18
魔法方法:
构造方法 :__init__(),在创建一个对象的时候会默认调用,不需要手动调用
# class Person():
# def __init__(self): #构造函数
# print('我是__init__方法')
# def p_info(self):
# print('你好!!')
# h1=Person() #我是__init__方法
# print(h1) #<__main__.Person object at 0x0000023B53E86388>
# h1.p_info() #你好!!
# class Person():
# sex='女' #类属性
# def __init__(self): #构造函数
# # 添加实例属性
# self.name='dsd'
# self.agename=19
#
# # 创建对象:创建对象的时候会自动执行构造函数
# p=Person()
# print(p.name) #dsd
# print(p.agename) #19
析构函数 __del__():如果希望对象在被销毁之前在做的一些事情,可以用__del__()
class Person():
def __init__(self): # 构造函数
print('我是__init__')
def __del__(self) :#析构函数
# 添加实例属性
print('我是__del__') #会在这个对象销毁的前一步调用这个函数
p=Person()
del p #删除这个对象 这里会调用我是__del__
print('最后一行代码')
__str__():当使用print输出对象的时候,默认打印的是对象的内存地址,但是如果类里面有str方法,那么就会打印这个方法的返回值
class Person():
def __init__(self): # 构造函数
print('我是__init__')
def __str__(self) :
return '我是__str__' #必须有返回值,且返回值必须是字符串类型
p=Person()
print(p) #我是__init_ 我是__str__