对只用一种语言来构建某个项目的情况而言,Javascript和它的框架是非常有用的。可以控制展示给用户的网站前端。将作为管理网站所有内容的网络服务器。在前端和服务器两者之间运行,对信息的来去进行导向。以下是小编为你整理的入门到精通
MongoDB作为存储中心,用于存储从用户处获取的数据。MEAN(Mongo/Express/Angular/Node)——一个有助于构建你在一个Web应用中所需要的一切东西的结构化框架——是一套目前被大量初创公司所喜好的编程语言。这是一个完备的组件,它包含了基于单一语言来Web化地构建所有事物的技术。
Python可读性和灵活性都非常好,最近它成为大学院校在教授计算机专业时选择的入门语言之一。
[图片0]
对于玩转数据以及用它的共通模块来完成各种你以前认为不可能的精巧工作来说——例如抓取完整的网页和进行高级科学计算,Python都是绝佳的。我是在Learn Python上开始学习Python的,它非常符合我“边做边学”的学习风格。
Java(以及其他更紧密地与计算机硬件交互的语言)对人类理解来说会稍难一些,尽管对于帮助你理解“代码的实际运行过程”和“程序员与计算机的交互过程”的绝大部分知识而言,它们是很棒的。
Java也用于在Android系统上的移动应用开发,而这将会是一直有需求的领域。
如果我们想简捷地将知识转换成金钱,那么,我曾见到业界对IOS开发者有着大量需求,而开发IOS应用所使用的Objective-C和Swift也并不那么难学习。
Ruby——尤其是当它与Rails一起使用时——是一种因其并不陡峭的学习曲线而被大量初创公司在初创时所用的语言(事实上,有一本叫Children's Book for Ruby的书)。
__str__()方法:
如果要把一个类的实例变成 str,就需要实现特殊方法__str__()。
Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。一般定义__repr__()的快捷办法是直接:
__repr__ = __str__
那么怎么定义__str__()呢?
Class Person(Object):
def __init__(self,name,gender):
= name
= gender
def __str__(self):
return '(Person: %s, %s)' % (, )
__repr__ = __str__
__cmp__()方法:
对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法 __cmp__()。__cmp__用实例自身self和传入的实例进行比较,如果实例自身self 应该排在前面,就返回 -1,如果传入的实例应该排在前面,就返回1,如果两者相当,返回 0。
举例:
Class Student(Object):
def __init__(self,name,gender,score):
= name
= gender
def __str__(self):
return '(Student: %s, %s, %s)' % (, , )
__repr__ = __str__
def __cmp__(self, s):
if < :
return -1
elif > :
return 1
else:
return 0
L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 77)]
print sorted(L)
注意:上面粗体部分也可以直接使用简写方式:
return cmp(, )
__len__()方法:
如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。
def __len__(self):
return len()
@property:Python内置的@property装饰器就是负责把一个方法变成属性调用的;
一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。
__slots__的目的是限制当前类所能拥有的属性
类的继承
如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承:
class Person(object):
def __init__(self, name, gender):
= name
= gender
定义Student类时,只需要把额外的属性加上,例如score:
class Student(Person):
def __init__(self, name, gender, score):
super(Student, self).__init__(name, gender)
= score
一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。
函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。
[图片1]
python中判断类型:
函数isinstance()可以判断一个变量的类型,既可以用在Python内置的数据类型如str、list、dict,也可以用在我们自定义的类,它们本质上都是数据类型。
在继承链上,一个父类的实例不能是子类类型,因为子类比父类多了一些属性和方法。一个实例可以看成它本身的类型,也可以看成它父类的类型。
class Person(object):
def __init__(self, name, gender):
= name
= gender
class Student(Person):
def __init__(self, name, gender, score):
super(Student, self).__init__(name, gender)
= score
t = Teacher('Alice', 'Female')
print isinstance(t,Person)
print isinstance(t,Student)
print isinstance(t,Teacher)
print isinstance(t,object)
选择一种能够快速见效的编程语言和平台 你需要选择一个既实用又喜欢的平台,让它保持您的兴趣,激励您快速扩展您的知识,最重要的是你要喜欢。
有些专家建议初学者首先学习C语言,因为它是必需的、基础的语言;但是有些人会让您先学习Lisp,因为它有坚实的理论并通过一种简单的方式教给你许多编程概念。
这些都是好的建议,只不过思考问题的角度不同。但是对于“第一种”要学习的语言,我认为选择一种你喜欢而且能够激发潜力的语言是比较重要的。Lisp和C语言都很好,但在更高版本中更容易欣赏到这些特点。笔者建议您将作为首先要学习的语言。微软提供了免费完整的IDE,你只要安装包文件就可以了。
重要的是,平台里包含了创建桌面程序和web程序的快速可视化设计器,你不需要学习整个图形工具而只需要熟悉编程环境就可以了。学习的代价是非常小的,同时你会学到很多以后学习其他编程语言的编程技巧。从教学的角度考虑,不是特别的令人讨厌的陋习,它简单有趣,让您在一周内就可以做出实用的程序。
另外一种语言选择是Python。这种语言和有许多相似之处,有terser语法。选择Python的唯一原因是它有一个较小的内置库和不提供固定的、标准的创建桌面程序或基于网络的应用服务设计器和框架。您可以单独下载这些工具包,但它不是立即见效,没有设计器您将在启动和运行上花费不少时间。