Python
1、枚举类型:http://www.cnblogs.com/ucos/p/5896861.html
2、随机数生成(random模块):http://www.cnblogs.com/sanghai/p/6243527.html
补充:1、random.randrange()返回一个整数类型
3、Python格式化字符串:http://c.biancheng.net/cpp/html/1844.html
4、Python编码问题 :http://www.cnblogs.com/Ceciliamumu/p/7681644.html
5、字符串:http://www.cnblogs.com/chenhq/p/7680898.html
6、列表方法:http://www.cnblogs.com/DLHe/p/7685609.html
7、序列元素的引用方法:http://www.cnblogs.com/vamei/archive/2012/05/28/2522677.html
8、 time&dealtime模块 :http://www.cnblogs.com/Infi-chu/p/7685865.html
内置函数type(), 用以查询变量的类型。
print后跟多个输出,以逗号分隔。
使用函数时,需注意传入参数的方式为值传递还是引用传递
方法的第一个参数必须是self,无论是否用到(self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类)
析构函数 __del__ ,__del__在对象销毁的时候被调用,当对象不再被使用时,__del__方法运行:
构造函数__init__
class Employee: '所有员工的基类' empCount = 0 def __init__(self, name, salary): self.name = name self.salary = salary Employee.empCount += 1 def displayEmployee(self): print (self.Employee.empCount)
hasattr(emp1, 'age') # 如果存在 'age' 属性返回 True。 getattr(emp1, 'age') # 返回 'age' 属性的值 setattr(emp1, 'age', 8) # 添加属性 'age' 值为 8 delattr(empl, 'age') # 删除属性 'age'
emp1.age = 7 # 添加一个 'age' 属性
emp1.age = 8 # 修改 'age' 属性
del emp1.age # 删除 'age' 属性
继承多个类 class C(A, B): # 继承类 A 和 B
你可以使用issubclass()或者isinstance()方法来检测。 issubclass() - 布尔函数判断一个类是另一个类的子类或者子孙类,语法:issubclass(sub,sup) isinstance(obj, Class) 布尔函数如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true。
在python中继承中的一些特点:
- 1:在继承中基类的构造(__init__()方法)不会被自动调用
- 2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数
- 3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。
调用A模块中的B类时,B的继承类C: class C(A.B)
类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。
类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用 self.__private_methods
Python不允许实例化的类访问私有数据,但你可以使用 object._className__attrName 访问属性
-
_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
-
__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
#用一个数字x乘以一个序列会生成新的序列。在新的序列中,原来的序列将被重复x次,这就是序列中的乘法。例子如下: 2 >>>8*[8] 3 [8,8,8,8,8,8,8,8] 4 >>>3*'hello' 5 'hellohellohello'
l = list('fsdf') 会输出‘f’,'s','d','f'
为了检查一个值是否在序列中,Python为我们提供了in运算符。in运算符和前面讨论过的运算符有些不同。in运算符用于检测某个条件是否为真,检测结果为真返回True,结果为假返回False。这种运算符称作布尔运算符,返回的真值叫做“布尔值
12 >>> numbers=[1,2,3,4,5] 13 >>> 1 in numbers 14 True
Python内置类属性
- __dict__ : 类的属性(包含一个字典,由类的数据属性组成)
- __doc__ :类的文档字符串
- __name__: 类名
- __module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
- __bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)