高阶函数

(了解)类的补充内容和高阶知识

  1. 判断类型

学过类后对这两个函数更加理解。type()返回的是类型。isinstance判断是第一个参数是不是第二个参数的实例。

a = 1
b = 'hello'
class Student():
    pass
c = Student()
d = True

print(type(a))  				# 
print(isinstance(1, int))  		 # True 。 int是一个内置类
print(isinstance(c, Student))  	 # True
print(type(c)) 			 # 
  1. dir()

dir() directory文件目录,列出一个类中的所有方法,返回列表。
[‘class’, ‘delattr’, …‘init’, ‘run’]
形如__xxx__这些名字的函数都有特殊用途。
class 类自己 __doc__文档 repr __str__类名信息

class Animal(object):
    def __init__(self, name):
        self.name = name
    def run(self):
        print('动物在跑')
    def __str__(self):
        return ''

print(dir(Animal))
  1. slots

由于python是动态语言,类在运行的时候可能会被攻击添加新的属性存放恶意信息,导致安全问题。slots = (属性1,属性2, …) 确定了类中有哪些属性,在程序运行时,往类中添加属性,如果新添加的属性不在__slots定义当中,就会报错。从而确保类属性不能被随意修改,确保安全。

class Student():
    __slots__ = ('name', 'score')
    def __init__(self, name, score):
        self.name = name
        self.score = score

xiaoming = Student('小明', 59)
xiaoming.score = 80
xiaoming.score1 = 'eval("python xx.py")'
print(xiaoming.score1)
  1. 多重继承

一个子类具备多个父类的特征

class Animal(object):
    pass
class Cartoon(object):
    pass
class Dog(Animal):
    pass
class HelloKitty(Animal, Cartoon):      # 有几个父类写几个,逗号分隔
    pass
  1. 软件设计模式

https://www.cnblogs.com/microsoft-zyl/p/6279176.html

你可能感兴趣的:(类和对象)