分子和嵌套(组合)

腾讯网潜水了有四年多,以后想分享二个方可说是帮扶类吧。

身体力行数组为:

成员

大家在编写程序的经过中,日常会用到有的方法,小编只是把这几个方法结合一下,方便使用,前段时间有md5,sha1,aes加解密,身份ID评释,敏感词过滤,文件减弱,图片与base64相互调换,时间戳与时光相互转变,轻巧的http央求,简单的ftp上传下载,依照伊始和结尾字符串截取字符串等等,后续图谋把日记记录,支付宝和微信支付进行加多,方便使用,如若你在编制程序的长河中有相比常用的法门,能够提议来,大家能够合作来周全那一个支持类,尽管有难堪的地点,恳请指正批评,谢谢大家,喜欢能够分享哦。

  $a = array(9,3,5,8,2,7);  //下标为0,1,2,3,4,5

1.类的分子:变量,方法,属性

变量:

  实例变量(字段)

    公有实例变量(字段)

1 class Foo:
2     def __init__(self,name):
3         self.name = name#公有实例变量
4     
5      def func(self):
6         return self.name

 

    私有实例变量(字段)

1 class Foo:
2     def __init__(self):
3         pass
4     def __func(self):
5         print("私有实例变量")
6 
7 obj = Foo()
8 obj.func()#此处无法调用

 

  类变量(静态字段)

    公有类变量(静态字段)

 1 class Foo:
 2     a = 1#公有类变量
 3     def __init__(self):
 4         pass
 5     def func(self):
 6         return self.a
 7 
 8 obj = Foo()
 9 print(obj.a)
10 print(Foo.a)

 

    私有类变量(静态字段)

1 class Foo:
2     __a = 1
3     def __init__(self):
4         pass
5     def func(self):
6         print(self.a)#不能引用,错
7 
8 obj = Foo()
9 obj.func()

总结:

  公有实例变量能够在类的艺术中运用,也能够用实例化的目的调用

  私有实例变量不能够在对象调用,只好在类中用别样方法调用后,再采用对象调用

  公有类变量可以在类中调用,也可以用对象调用

  私有类变量只可以在类中利用此外方式调用,不能够使用对象调用,子类也无法调用(假诺非得要用,先在父类中运用办法来调用那个私有类变量,再在子类中调用这些措施)

 

方法:

  实例方法

  

1 class Foo:
2     def __init__(self,name):
3         self.name = name
4     def func(self):#实例方法
5         print(self.name)
6 
7 obj = Foo("abc")
8 obj.func()

 

  静态方法

1 class Foo:
2     def __init__(self,name)
3         self.name = name
4     @staticmethod#静态方法
5     def display(a1,a2):
6         return a1 + a2
7 
8 Foo.display(1,2)
#如果无需使用对象中封装的值,就可以使用静态方法

 

  类方法

1 class Foo:
2     @classmethod
3     def show(cls,x1,x2):#默认第一个参数是类(cls)
4         print(cls,x1,x2)
5 
6 ret = Foo.show(1,2)
7 print(ret)

总结:

  实例方法:至稀少一个参数,第二个参数必得是实例对象,暗中同意是self

  静态方法:能够没有参数,也不供给利用对象中封装的值,方法方面须求加@staticmethod

  类方法:至稀有多少个参数,第一个参数必得是类,暗中认可是cls,方法方面必要加@classmethod

 

属性(通过艺术改变出来):

  

 1 class Foo:
 2     def __init__(self):
 3         pass
 4     @property
 5     def start(self):
 6         return 1
 7     @property
 8     def end(self):
 9         return 2
10 
11 obj = Foo()
12 print(obj.start)
13 print(obj.end)

总结:属性编写时,方法方面写@property,方法中独有贰个参数self

  调用时,无需加括号,直接是对象.方法

  对于简易的法子,当不需求传参且有再次回到值时,可以运用品质

 

nuget:Install-Package ToolHelper -Version 1.2.2

演算进度描述:

嵌套(组合):

 1 class Student(object):
 2     def __init__(self,name,age)
 3         self.name = name
 4         self.age = age
 5 #创建三个人
 6 obj1= Student("a",18)
 7 obj2= Student("b",20)
 8 obj3= Student("c",21)
 9 
10 class School(object):
11     def __init__(self,name,address)
12         self.name = name
13         self.address = address
14 
15 #创建三个学校
16 s1 = School("学校1","北京")
17 s2 = School("学校2","上海")
18 s3 = School("学校3","深圳")
19 
20 
21 #给每个学生分配学校
22 obj1.school = s1
23 obj2.school = s2
24 obj3.school = s3
25 
26 print(obj1.school.name)
27 print(obj2.school.name)
28 print(obj3.school.name)

 

github:

  从数组的右边手开端,依次两两相比较相邻的2个数据的高低,即使发现侧边的比左边的大,则将她们举行调换。那样进行“生机勃勃趟”之后,必然能够分明最大的贰个数据放在最右面。

 

  按此方法,对“剩余的数码”继续开展下生龙活虎趟,则确定能够规定那一个剩余数量的最大值放在剩余地方的最侧面。

只需三步走,我们就足以选取那几个办法了。

演示:

  1,nuget 安装 ToolHelper

原始数组: 9 3 5 8 2 7
第一趟后: 3 5 8 2 7 9
第二趟后: 3 5 2 7 8 9
第三趟后: 3 2 5 7 8 9
第四趟后: 2 3 5 7 8 9
第五趟后: 2 3 5 7 8 9

    图片 1

 

 

 

 

 

  2,加多命名空间

 

  图片 2

 

  3,开头选取

 

上面介绍那几个协助类方今部分的有的方法:

规律描述:

MD5Helper(对字符串举行MD5):

  1,若是数组的数目有n个;

Console.WriteLine($"123456:{MD5Helper.MD5("123456")}");

  2,要实行相比的“趟数”为n-1趟;

图片 3

  3,每生龙活虎趟要比较的数量个数都比前大器晚成趟少三个,第风度翩翩趟要相比较n个(即相比较n-1次);

 

  4,没一回比较,假诺开掘“左边数据”大于“左侧数据”,就对那二者实行置换个方式置。

SHA1Helper(对字符串实行SHA1):

代码演示如下:

Console.WriteLine($"123456:{SHA1Helper.SHA1("123456")}");
<?php
$a = array(9,3,5,8,2,7);//下标为0,1,2,3,4,5
echo "排序之前:";print_r($a);

$n = count($a);//个数
for($i=0;$i<$n-1;++$i)//这就是n-1趟
{
    for($k=0;$k<$n-$i-1;++$k)//这就是比较的次数
    {
        if($a[$k]>$a[$k+1])
        {
            $t = $a[$k];
            $a[$k] = $a[$k+1];
            $a[$k+1] = $t;
        }
    }
}
echo "<br />排序之后:";print_r($a);

图片 4

运行结果:

 

  排序以前:Array ( [0] => 9 [1] => 3 [2] => 5 [3]
=> 8 [4] => 2 [5] => 7 ) 
  排序之后:Array ( [0] => 2 [1] => 3 [2] => 5 [3]
=> 7 [4] => 8 [5] => 9 )

IllegalWordHelper(敏感非法词汇过滤):

发表评论

电子邮件地址不会被公开。 必填项已用*标注