习题45:对象、类以及从属关系
# Animal is-a object(yes,sort of confusing) look at the extra credit
class Animal(object):
pass
# ??
class Dog(Animal):
def __init__(self, name):
# ??
self.name = name
# ??
class Cat(Animal):
def __init__(self, name):
# ??
self.name = name
# ??
class Person(object):
def __init__(self, name):
# ??
self.name = name
# Person has-a pet of some kind
self.pet = None
# ??
class Employee(Person):
def __init__(self, name, salary):
# ?? hmm what is this strange magic?
super(Employee, self).__init__(name)
# ??
self.salary = salary
# ??
class Fish(object):
pass
# ??
class Salmon(Fish):
pass
# ??
class Halibut(Fish):
pass
# rover is-a Dog
rover = Dog("Rover")
# ??
satan = Cat("Satan")
# ??
mary = Person('Mary')
# ??
frank = Employee('Frank', 120000)
# ??
frank.pet = rover
# ??
flipper = Fish()
# ??
crouse = Salmon()
# ??
harry = Halibut()
1. 研究一下为什么 Python 添加了这个奇怪的叫做 object 的 class,它究竟有什么含义呢?
继承的父类是object,所以类最终的父类都是它
2. 有没有办法把 Class 当作 Object 使用呢?
python所有的类都是静态的,可以不创建对象的
3. 在习题中为 animals、fish、还有 people 添加一些函数,让它们做一些事情。看看当函数在 Animal 这样的“基类(base class)”里和在 Dog 里有什么区别。
4. 找些别人的代码,理清里边的“是啥”和“有啥”的关系。
5. 使用列表和字典创建一些新的一对应多的“has-many”的关系。
6. 你认为会有一种“has-many”的关系吗?阅读一下关于“多重继承(multiple inheritance)”的资料,然后尽量避免这种用法。
习题46:一个项目骨架
1. 找文档阅读,学会使用你前面安装了的软件包。
2. 阅读关于 setup.py 的文档,看它里边可以做多少配置。Python 的安装器并不是一个好软件,所以使用起来也非常奇怪。
3. 创建一个项目,在模组目录里写一些代码,并让这个模组可以运行。
4. 在 bin 目录下放一个可以运行的脚本,找材料学习一下怎样创建可以在系统下运行的 Python 脚本。
5. 在你的 setup.py 中加入 bin 这个目录,这样你安装时就可以连它安装进去。
6. 使用 setup.py 安装你的模组,并确定安装的模组可以正常使用,最后使用 pip 将其卸载。
print_r('点个赞吧');
var_dump('点个赞吧');
NSLog(@"点个赞吧!")
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!")
Response.Write("点个赞吧");
alert(’点个赞吧’)