模块,类,面向对象,笔记_python

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 中文版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值