day18_(面向对象初识)

类:
具有相同属性和技能的一类事物.
对象:
类的具体表现.
class 关键字
class 类名: (类名应该首字母大写)
代码块.
country = 'China' 第一部分:静态变量,静态字段

def __init__(self,name,age): 第二部分:动态方法,函数,方法
pass
def func(self):
pass
类从结构上考虑就是分这两大部分.
类名:
#1,类名.__dict__
#2,类名.country (类名.__dict__['country'] 不建议)
类名.变量名 可以增删改查.
#3,类名.func(111)
对象:
obj1 = 类名()
1,在内存中创造了一个空的!对象空间.
2,自动执行__init__(self),并且将空的对象空间传给self
3,在__init__方法中,给空的对象空间封装一些属性,然后再将完善好的空间,返回给类名(),这个对象.
# 1,对象查看自己空间的所有属性:
obj.__dict__
# 2,对象操作自己的属性. 万能的点.
obj.属性名(增删改查.)
# 3,对象可以查询类中的静态字段.
obj.静态字段.
# 4,对象执行类中的方法.
obj.方法名()

class Person:
    '''
    此类是构建人类
    '''
    level = '高级动物'
    mind = '有思想'
    language = '语言'

    def __init__(self):
        pass
    def work(self):
        print('开始工作了!!!!')
    def eat(self):
        pass

类名
    1类名查看类中所有的变量(字段),方法(函数):
print(Person.__dict__)
    2类名对静态变量(静态字段)进行操作  最好不要通过__dict__这个字典进行操作
        2.1通过类名.__dict__  不建议!!!通过这个方法
print(Person.__dict__['mind']) # 可以查值
Person.__dict__['create'] = '有创造力' #  不能增加值
del Person.__dict__['mind']  # 不能删除值
Person.__dict__['mind'] = '行尸走肉'  # 不能更改值
print(Person.__dict__)
小总结: 查询类里面所有的变量 Person.__dict__
        (增删改)查询单个变量 不要用Person.__dict__
        2.2 通过类名.变量名  常用!!!
print(Person.mind)  # 可查询
print(Person.language)  #可查询
Person.create = '有创造力' # 可增加
del Person.mind # 可删除
Person.mind = '行尸走肉'
print(Person.mind)
print(Person.__dict__)
    3类名对动态方法(函数)进行操作
        3.1 通过类名.__dict__  不建议!!!通过这个方法
        课下自己试一下
        3.2 类名.方法名
Person.work(111)
class Person:
    '''
    此类是构建人类
    '''
    level = '高级动物'
    mind = '有思想'
    language = '语言'

    def __init__(self,name,age,sex,area,hobby):  # 构造方法
        self.name = name  # slef.name name 是对象属性
        self.age = age
        self.sex = sex
        self.area = area
        self.hobby = hobby

    def work(self,eye):
        self.eye = eye
        print('开始工作了!!!!')
    def eat(self):
        pass

#实例化对象.
# aduan = Person()  # 过程就叫做实例化一个对象
# 类名+():
# aduan = Person('啊段',18,'男','河北邯郸','非女')
# print(aduan)  # <__main__.Person object at 0x0000000001F7EA20>
#1 产生一个空的对象空间
#2,自动执行类中的__init__方法,并将空的对象空间传给self,剩下的值传给相应形参
#3,执行init方法,给对象封装属性,并将完善好的这个对象返回给 类名()

# 对象
    # 1,查找对象中的所有属性
# aduan = Person('啊段',18,'男','河北邯郸','非女')
# print(aduan.__dict__)

# aduan = Person('啊段',18,'男','河北邯郸','非女')
# aying = Person('啊颖',17,'女','河北衡水','开车...')
    #2, 对象操作对象中属性.
# aduan = Person('啊段',18,'男','河北邯郸','非女')
# print(aduan.name) # 查
# aduan.job = 'student' # 增
# del aduan.age # 删
# aduan.sex = 'laddyboy'
# print(aduan.__dict__)
    #3,对象操作类中的静态变量(静态字段). 只能查询不能增删改.
# aduan = Person('啊段',18,'男','河北邯郸','非女')
# print(aduan.level)  # 查 类中的静态字段
# aduan.level = '中等动物'  # 对象中设置新属性,而不是改变类中的level
# print(aduan.level)
# del aduan.level
# print(Person.__dict__)
    #3,对象执行类中的方法.
aying = Person('啊颖',17,'','河北衡水','开车...')
print(aying)
aying.work('大眼睛')
print(aying.__dict__)
# 1 self 位置参数, 默认接受的是对象空间,约定俗成叫self.
# 2 在类的非__init__方法中,也可以给对象添加一些属性,前提必须先执行这个方法.

猜你喜欢

转载自www.cnblogs.com/molieren/p/9249432.html
今日推荐