3月16日课后总结

3/16课后总结

面向过程概念

# python中两大范式:1面向对象,2面向过程
# 这俩都只是编程思想

"""
	面向过程重在过程二字,先做什么,在做什么,一步一步的来,机械式思维
	
	生活中:比如上厕所,首先得脱裤子,蹲下,解决战斗,擦干净,站起来,提裤子,就得按照步骤一步步来,跳过任何一步都会有问题。
	优点:复杂的问题简单化,进而流程化
	缺点:扩展性差
	使用场景:通常是对扩展性要求不高的地方
"""

面向对象概念

"""
	面向对象重点就是对象二字
	在python中一切皆对象
	在程序中:
		对象就是存放“属性”和“方法”的地方
	在生活中:
		对象就是“特征”和“能力”
"""

类的定义和对象的产生

# 类:存放“属性”和“方法”的地方
"""
	在程序中,先有类,将类实例化后产生对象
	在生活中,先有对象才有类
"""
# 定义类
class Dog:  # class就是声明一个类,Dog是类名
    pass
# 类名遵循变量的命名规范,首字母一般大写,如果存在多个单词,采用大驼峰的形式

class Dog:
    animal = 'dog' # 类的属性
    def __init__(self, name):  # 类的构造方法,实例化类时自动调用
        self.name = name
    def say_hi(self):  # 函数写在类里面就叫方法
        print('汪汪汪')
        
"""
	定义类就会立马执行类体代码
	产生类的名称空间,并把类的属性和方法名字放进去
	把类的名称空间绑定给__dict__,类名.__dict__
"""
print(Dog.__dict__) # 查看类的名称空间
dahuang = Dog('dahuang') # 实例化类产生对象
maoyue = Dog('maoyue')
print(maoyue.__dict__)  # 对象的名称空间

定制对象自己独有的属性

class Dog:
    animal = 'dog' # 类自己独有的属性
    def __init__(self, name):  # 类的构造方法,实例化类时自动调用
        self.name = name
    def say_hi(self):  # 函数写在类里面就叫方法
        print('汪汪汪')
        
maoyue = Dog('毛跃')
"""
	类在实例化时,会将maoyue也就是对象自己传入类中的self,然后括号中写的就是传入构造方法中的实参
	上面的animal和后面定义的name,都是类的属性,一般多个对象都带有animal这个属性时,就可以不将其写在构造方法里,而是直接给其一个值,后面实例化的对象都会带有这个属性
	如:print(maoyue.animal)  # 打印的结果是dog
"""

属性的查找顺序

class Dog:
    animal = 'dog'
    def __init__(self, name):
        self.name = name
    def say_hi(self):  
        print('汪汪汪')
        
print(Dog.animal)  # 查找类属性

Dog.age = 18
print(Dog.__dict__)  # 增加类属性

Dog.animal = 'cat'
print(Dog.__dict__)  # 类属性的修改

del Dog.age
print(Dog.__dict__)  # 删除类属性

dog1 = Dog(1)
print(dog1.__dict__)  # 查看对象属性

查看
print(dog1.__dict__['name'])
print(dog1.name)

print(dog1.__dict__['animal'])  # 只能从对象自己的属性里面去查找,没有则直接报错

'''对象的属性查找,先从自己对象属性里面去找,如果找到了,直接返回,如果找不到,在去产生这个对象的类中取查找'''
print(dog1.animl)

# 增删改,如类
posted @ 2023-03-16 18:50  橘子熊何妨  阅读(21)  评论(0)    收藏  举报