00105 python类

来源:互联网 发布:C语言的根号 编辑:程序博客网 时间:2024/06/06 13:09
就是一类东西的总称,创建一个类,然后在类里面创建对象,这些对象就会自动具有该类的所有属性

class Dog():  #创建类 给出类名Dog——根据约定,在Python中,首字母大写的名称指的是类。

     def __init__(self, name, age): #注意前后各有两个下划线,代表这是默认的方法,在该类下创建任何对象时,都将自动运行该方法。
          """初始化属性name和age"""
          """第一个参数self由程序自动给出,不需要赋值,
             它代表的是我们创建的对象,作为self参数,代进类定义里的所有函数之中,从拥有该类所有属性
             因此,类定义里的每一个函数,都有一个self参数,而且必须放在第一位"""
          self.name = name
          self.age = age  #由于初始化方法自动运行,每一个小狗对象都将有一个名字和年龄

     def sit(self):
          """模拟小狗被命令时蹲下"""
          print(self.name.title() + " is now sitting.")

     def roll_over(self):
          """模拟小狗被命令时打滚"""
          print(self.name.title() + " rolled over!")

mydog=dog('harry',6)  #类的实例化——创建一个实例
     #在创建实例时,必须要给出__init__方法所需的所有参数,否则报错
print(mydog.name) #>>>harry 该实例拥有了name属性,可以访问

类的继承——将一个类的属性赋给另一个类(而不是给它的实例们),被继承的类是父类,继承的类是子类

#定义父类
class Man():
     def __init__(self,sex,age):
          self.sex=sex
          self.age=age

#定义子类
class Chinese(Man): #注意:定义子类与父类的区别就是括号里要给出父类名称
     def __init__(self,sex,age,nation):
          super().__init__(self,sex,age)  #super就是父类的意思
          self.nation=nation

zhangsan=Chinese('F',28,'China')
print(zhangsan.sex)  >>>'F'  #引用父类的属性,方法也可以引用,在此不予列出
print(zhangsan.age)  >>>28 
print(zhangsan.nation)  >>>'China'

#在子类的定义里如果有跟父类定义里方法名一样的方法,相当于修改了继承而来的方法,以后的调用将以子类定义内的方法为准

类的嵌套:
通过将一个类的属性,定义为另一个类,可以实现嵌套
     self.attr = anotherclass()

类的模块化:将定义好的类存为一个单独的.py文件,使其变成一个独立的模块
模块导入: from module_name import class_name1, class_name2

TIPS:
  • 命名原则:类名应采用驼峰命名法,即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。
  • 注释:定义类后给出注释,简要描述其功能