1.python中的类并没有硬性规定,比如像Java一样一个每一个类都是.class结尾的,而是.py结尾的;
class testClass:
def setModels(self,name,age):
self.age = age;
self.name = name;
2.python中的类中的方法,都必须有一个默认值,否则会报错;
class testClass:
def setModels(self,name,age):
self.age = age;
self.name = name;
3.python中存在类属性,类似于Java中的静态常量;
class testClass:
testClassName = "我是python的类属性,可以直接通过类名点我得到我";
print(testClass.testClassName)
4.python中的构造方法不支持方法的重载,有且仅有一个,注意python的构造方法默认为_init__;
class testClass:
def __init__(self,a,b):
print("我是python的构造方法");
5.python中可以将构造方法定义为多参数传递灵活的方法;
class testClass:
#定义灵活的可传递任何数据的构造方法
def __init__(self,**map):
print("我是python的构造方法" + map.get("name"));
print("我是python的构造方法" + map.get("age"));
6.python中的类变量是可以通过实例化对象访问的,而Java是不可以的;
class testClass:
testClassName = "我是python的类属性,可以直接通过类名点我得到我";
from src.test.test import test
from src.testClass.testClass import testClass
if __name__ == '__main__':
# testObject = test();
# testObject.testClassFunction();
testClassA = testClass();
print("测试实例化对象访问类变量".format(testClassA.testClassName));
7.python中实例化对象的类变量进行更改不会修改类的变量,这个可能比较难理解,下面代码演示;
from src.test.test import test
from src.testClass.testClass import testClass
if __name__ == '__main__':
# testObject = test();
# testObject.testClassFunction();
testClassA = testClass();
print("测试实例化对象访问类变量".format(testClassA.testClassName));
# 修改实例化对象的变量 这个时候这个变量已经变味了实例化对象的属性,在内存中是单独的一个空间了
testClassA.testClassName = "我会七十二变";
# 打印实例化变量和类变量,发现类变量的值并未改变
print(testClassA.testClassName);
print(testClass.testClassName);
8.python中可以灵活动态定义类变量,个人感觉是python的骚操作,需要注意的是,实例化对象定义的属性和类定义的属性是无法互相访问的;
from src.test.test import test
from src.testClass.testClass import testClass
if __name__ == '__main__':
# 测试python动态定义类变量;
testClassA = testClass();
testClassA.dynamicVariablesA = "我是python的实例化对象的动态变量";
testClass.dynamicVariables = "我是python的动态变量";
print(testClass.dynamicVariables);
print(testClassA.dynamicVariablesA);