概述
1.模块,类和对象
1.1 模块是啥?
类似于字典,比如在文件 mystuff.py 要调取函数 apple 要调取变量 tangerine
1.2 类是啥?
类就像模块,但是类可以复制很多个,但是导入模块在一个程序只有一个。
1.3 对象
class MyStuff(object):
def __init__(self):
self.tangerine = "And now a thousand years between"
def apple(self):
print("I AM CLASSY APPLES!")
对象就是实例化(instantiate)一个类.实例化可以理解为creat一个对象,类似为import 一个模块
__init__
函数 (变量为self
)就是初始化新创建的空对象
init
函数下为这个对象设置的变量为 self.tangerine
1.4 常见问题
为什么我在类下面 用 init 函数或者其他函数的时候要用self? 如果不用self,那么像cheese = ‘Frank’ 这样的代码就会很含糊,计算机不知道你是指实例的cheese属性还是一个叫做cheese 的局部变量。而用self.cheese = ‘Frank’ 的话就会很清晰,你是指实例的属性 self.cheese
2 面向对象
2.1 词汇
类(class)告诉python 创建一个新类型的东西
对象(object)两种含义:最基本类型的东西,任何实例
实例(instance) 当你告诉python创建一个类的时候你所得到的东西。
def:你如何在类里面定义一个函数。
self:在一个类的函数里面,self 是被访问的实例/对象的一个变量
继承(inheritance) :关于一个类能从另一个类那里继承它的特征的概念,很像你和你的父母。
组合(composition) :关于一个类可以由其他一些类构成的概念, 很像一辆车包含几个轮子。
属性(attribute) :类所拥有的从组合那里得到的特性,通常是变量。
is-a :一种用来表达某物继承自一种东西的表述, 就像“三文鱼是一种鱼”。
has-a :一种用来表达某物是由一些东西组成或具有某种特性的表述,就像“三文鱼有一个嘴巴”。
2.2 短语(熟练掌握)
class X(Y) : 创建一个名为 X 并继承自 Y 的类。 (“Make a class named X that is-a Y.”)
class X(object): def init(self, J)类 X 有一个带有 self 和 J 参数的 init 函数。 (“class X has-a init that takes self and J parameters.”)
class X(object): def M(self, J): 类 X 有一个带有 self 和 J 参数的 M 函数。 (“class X has-a function named M that takes self and J parameters.”)
foo = X(): 设 foo 为类 X 的一个实例。 (“Set foo to an instance of class X.”)
foo.M(J)从 foo 那里获取 M 函数,并用 self 和 J 参数来调用它。 (“From foo, get the M function, and call it with parameters self, J.”)
foo.K = Q从 foo 那里获取 K 属性,并设它为 Q。
2.3 对象和类代码
1 ## Animal is-a object (yes, sort of confusing) look at the extra credit(附加练习)
2 class Animal(object):
3 pass
4
5 ## make a class named Dog that is-a Animal
6 class Dog(Animal):
7
8 def __init__(self, name):
9 ## class Dog has-a init that takes self and name parameters
10 self.name = name
11
12 ## ## make a class named Cat that is-a Animal
13 class Cat(Animal):
14
15 def __init__(self, name):
16 ## class Dog has-a init that takes self and name parameters
17 self.name = name
18
19 ## Person is-a object
20 class Person(object):
21
22 def __init__(self, name):
23 ## class Person has-a init that takes self and name parameters
24 self.name = name
25
26 ## Person has-a pet of some kind
27 self.pet = None
28
29 ## make a class named Employee that is-a Person(继承自Person)
30 class Employee(Person):
31
32 def __init__(self, name, salary):
33 ## super(Employee, self) 首先找到 Employee 的父类(就是类 Person),
#然后把类 Employee的对象转换为类 Person 的对象
34 super(Employee, self).__init__(name)
35 ##
36 self.salary = salary
37
38 ## 造个对象叫做Fish
39 class Fish(object):
40 pass
41
42 ## Salmon 继承自 Fish
43 class Salmon(Fish):
44 pass
45
46 ## Halibut继承自 Fish
47 class Halibut(Fish):
48 pass
49
50
51 ## rover is-a Dog
52 rover = Dog("Rover")
53
54 ## Satan is-a Cat
55 satan = Cat("Satan")
56
57 ## Mary is-a Person
58 mary = Person("Mary")
59
60 ## 从实例mary获得了属性pet
61 mary.pet = satan
62
63 ## ??
64 frank = Employee("Frank", 120000)
65
66 ## 从实例frank获得了属性pet
67 frank.pet = rover
68
69 ## 为类Fish 的一个实例
70 flipper = Fish()
71
72 ## 为类Salmon 的一个实例
73 crouse = Salmon()
74
75 ## 为类Halibut 的一个实例
76 harry = Halibut()
3参考
笨办法学Python3(Learn Python3 The Hard Way 中文版)
最后
以上就是傲娇小蘑菇为你收集整理的模块,类,面向对象,笔记_python1.模块,类和对象2 面向对象3参考的全部内容,希望文章能够帮你解决模块,类,面向对象,笔记_python1.模块,类和对象2 面向对象3参考所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复