1,类的概念:具有相同特征的一类事物(人,狗,老虎).
- 对象/实例的概念:具体类的表现,具体的实实在在的一个实例(类的具体化,对象具有类的属性)
- 实例化:类----->对象的过程
- 面向对象的程序设计的核心是对象,面向对象变成可以使程序维护和扩展把爱你的简单,并且可以大大提高程序开发效率,另外,基于面向对象的程序可以使人更加容易理解你的代码逻辑,从而使团队开发变得更从容.
2,类的声明
- class Person:.................定义一个人类(class)后边的字母手字母必须大写(固定格式)
- 列如:class Person:
- #类体:在类声明的里边(类似于函数名里边的函数体)叫做类体,类体有以下两部分构成:1>变量部分,如下<1>部分,2>方法函数部分,如下<2>部分所示.
class Person: mind = "有思想的" # <1>部分的变量函数又叫(静态变量,静态字段) animal = "高级动物" # faith = "有信仰" # def __init__(self): # <2>方法(函数)部分也叫(动态变量) # print(self) # print(666) def __init___(self, name, age, sex, hobby): self.name = name self.age = age self.sex = sex self.hobby = hobby def work(self): print("人类都会工作...") def shop(self): print("人类都会消费...")
2.1>从类名的角度,操作类体中的静态变量(静态字段)
- 2.1.1>类名.__dict__是查找类体中查询类中所有的内容,(只能进行查找,不能进行增,删,改)如下图所示:
- print(Person.__dict__)
- 2.1.2>通过万能的(.)来实现对静态变量的操作(增加)
- Person.skill = "使用工具"
- print(Person.__dict__)
- 2.1.3>通过万能的(.)来实现对静态变量的操作(删除)
- del Person.faith
- print(Person.__dict__)
- 2.1.4>通过万能的(.)来实现对静态变量的操作(修改)
- Person.anamal = "有时候也比较笨"
- print(Person.anamal)...............此时打印的结果是"有时候也比较笨"
- print(Person.__dict__)
- 2.1.5>通过万能的(.)来实现对静态变量的操作(查找)
- print(Person.mind)..............................................................此时打印的结果是:"有思想的"
3,从对象的角度对静态变量(静态字段)和方法(函数)的操作
- 3.1>从类转化为对象(类名+()的过程:实例化的过程(创建一个对象的过程)) Person()是实例化对象
- ret = Person()
- print(ret)........,,,,此时打印的是
- 当类名+() 就会产生一个对象 只要一产生对象就会自动执行__init__方法(__init__里边的参数只有(self)的时候)
- 3.2>从对象的角度对静态变量和人动态方法去操作
- 3.2.1>操作对象中的静态变量
- ret= Person("name",58,"不详","烫头")............................当有参数的时候def __init__(self)不能出现
- print(ret)
- 3.2.1>操作对象中的静态变量
-
-
- print(ret.__dict__)
-
-
- 3.2.2对象对静态变量操作(查找)
- print(ret.name)....................................此时打印结果是:333 alex
- 3.2.3对象对静态变量操作(增加)
- ret.hight = 175
- print(ret.ret)........................................此时打印结果是:333 175
- print(ret.__dict__)......此时打印结果是:333 {'name': 'alex', 'age': 58, 'sex': '不详', 'hobby': '烫头', 'hight': 175}
- 3.2.2对象对静态变量操作(删除)
- del ret.name.....................................这是删除name这个键值对
- print(ret.__dict__)..............................此时打印结果是:333 {'age': 58, 'sex': '不详', 'hobby': '烫头'}
- 3.2.2对象对静态变量操作(修改)
- ret.name = "太白"...............................把name = "alex"改成 name = "太白"
- print(ret.__dict__)............此时打印的结果是:333 {'name': '太白', 'age': 58, 'sex': '不详', 'hobby': '烫头'}
- 3.2.2对象对静态变量操作(查找)
- 3.3 >对象调用类体中的方法 (据太白说,工作中,通过对象执行类中的方法,而不是通过类名)
- 3.3.1>调用类体中的方法(函数)
- ret.work().................此时打印的结果是:333 人类都会工作...(直接用对象调用就好了)
- 3.3.2对象调用类体中的方法(函数)
- 3.3.1>调用类体中的方法(函数)
class Person: def __init__(self, name, age, sex, hobby): self.name = name self.age = age self.sex = sex self.hobby = hobby def work(self): print("%s都会工作" % self.name) super = Person("wusir", 36, "男", "抽烟") super.work() # wusir都会工作
4,当创造一个对象时:
- 4.1>类名+()产生一个实例(对象,对象空间)
- 4.2>自动执行类中的__init__方法,将对象空间传给__init__的self参数
- 4.3>给对象封装相应的属性