zoukankan      html  css  js  c++  java
  • python学习笔记(四)

    25、三引号

    python中用三引号可以引用大段文字,且中间可以书写任意单双引号

    26、原意字符

    当一段字符串中有太多需要转义的符号时,可以使用原意字符,避免总是转义 print(r”this is a newline simbol: .and that is a simbol:*”)  双引号中原样显示。

    27、python自省

    dir(对象)---可以查看此对象有哪些方法和属性

    dir(__builtins__)查看有哪些内建函数

    help(命令)---查看命令的使用方式

    print(logging.__file__)----查看logging模块的位置

    28、print的参数

    print(value1,,sep= ‘ ’,end=’ ’,file=sys.stdout,flush=false)

    默认是各参数之间空格分割,最后一个参数之后换行,如果有其他打印需求,可以修改参数。

    29、打印出注释文字

    def print_abc:

    “””打印出abc字符串”””

    print(“abc”)

    print(print_abc.__doc__)

    说明:函数或者类的说明文档,必须在函数或类定义的行后面,且在第一个语句的前面。

    30、行连接符

    当输出一个字符串,但是字符串太长,在代码中要换行,但又不能在显示中换行时,使用行连接符

    print(“这是一个很唯美的故事,

    故事的女主人公很美。”)

    31、静态方法、类方法

    创建静态方法:

    @staticmethod

    def method_name()

    创建类方法:

    @Classmethod

    def method_name()

    静态方法和类方法既可以供类调用,又可以供类的实例调用。

    而实例方法只能供类的实例调用,不能供类调用。

    class Name:

    @staticmethod

    def name1():

    print(“name1”)

    @classmethod

    def name2():

    print(“name2”)

    def name3():

    print(“name3”)

    Name.name3()    #调用会出错

    Name().name3()   #实例化的调用,正确

    35、类的变量、实例的变量

      python的类变量和C++的静态变量不同,并不是由类的所有对象共享。类本身拥有自己的类变量(保存在内存),当一个TestClass类的对象被构造时,会将当前类变量拷贝一份给这个对象,当前类变量的值是多少,这个对象拷贝得到的类变量的值就是多少;而且,通过对象来修改类变量,并不会影响其他对象的类变量的值,因为大家都有各自的副本,更不会影响类本身所拥有的那个类变量的值;只有类自己才能改变类本身拥有的类变量的值

    Class Name:

    test = 1

    def __init__(self):

    self.test1 = 2

    a = Name

    b = Name()

    print(a.test, b.test, b.test1)   #如果a.test1则报错

    类可以访问类的变量,不能访问实例的变量。实例可以访问类的变量和实例的变量。

    36、继承和调用

    class Parent:

    def __init__(self):

    self.name = ‘name’

     

    class Child(Parent):

    name1 = ‘name1’

    def __init__(self):

    self.name2 = ‘name2’

    def print1(self):

    print(self.name1) #正确,因为init函数中没有成员变量name1self就指向类的变量name1。如果类的变量和成员变量中有相同的name1,则指向成员变量name1.

    class Child(Parent):

    name3 = ‘name3’

    def print1(self):

    print(self.name3) #正确,没有定义实例的变量。self指向类的变量。

    print(self.name1) #正确,没有定义类的成员变量,self指向父类的成员变量

    37、执行系统命令

    1import os

    os.system(“command”)

    仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 

    (2)os.popen()

    tmp = os.popen('ls *.sh').readlines() 

    该方法不但执行命令还返回执行后的信息对象。好处在于:将返回的结果赋于一变量,便于程序的处理

    (3)使用模块subprocess

    import subprocess    

    p = subprocess.Popen('ls *.sh', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)    

    print p.stdout.readlines()    

    for line in p.stdout.readlines():    

        print line,    

    retval = p.wait()

    好处在于:运用对线程的控制和监控,将返回的结果赋于一变量,便于程序的处理。

    当执行命令的参数或者返回中包含了中文文字,那么建议使用subprocess,如果使用os.popen则会出现错误

  • 相关阅读:
    [慢查优化]慎用MySQL子查询,尤其是看到DEPENDENT SUBQUERY标记时
    Web开发基本准则-55实录-缓存策略
    Web开发基本准则-55实录-Web访问安全
    线上Java应用排查和诊断规范
    [慢查优化]建索引时注意字段选择性 & 范围查询注意组合索引的字段顺序
    [慢查优化]联表查询注意谁是驱动表 & 你搞不清楚谁join谁更好时请放手让mysql自行判定
    再说memcache的multiget hole(无底洞)
    RCA:未注意Curl-library Post 1024以上字节时的HTTP/1.1特性导致 HessianPHP 传输数据失败
    (研发系)职业化7个细节
    5·12和6·17两知名网站域名被劫持事件实施过程回放
  • 原文地址:https://www.cnblogs.com/yahutiaotiao/p/8030187.html
Copyright © 2011-2022 走看看