大家一起进步吧!感谢大家的支持和关注
python环境安装
ptython基础
面向对象s
继承关系 :
print(类名.mro())
class D(object):
pass
class C(D):
pass
class B(D):
pass
class A(B, C):
pass
print(A.mro())
A B C D object
自己分析一下吧
callable,是否可在后面加括号执行。
函数
def func():
pass
print( callable(func) ) # True
类
class Foo(object):
pass
print( callable(Foo) ) # True
类中具有__call__
方法的对象
class Foo(object):
pass
obj = Foo()
print( callable(obj) ) # False
class Foo(object):
def __call__(self, *args, **kwargs):
pass
obj = Foo()
print( callable(obj) ) # True
super,按照mro继承关系向上找成员。
type,获取一个对象的类型。
isinstance,判断对象是否是某个类或其子类的实例
class Top(object):
pass
class Base(Top):
pass
class Foo(Base):
pass
v1 = Foo()
print( isinstance(v1, Foo) ) # True,对象v1是Foo类的实例
print( isinstance(v1, Base) ) # True,对象v1的Base子类的实例。
print( isinstance(v1, Top) ) # True,对象v1的Top子类的实例。
class Top(object):
pass
class Base(Top):
pass
class Foo(Base):
pass
print(issubclass(Foo, Base)) # True
print(issubclass(Foo, Top)) # True
try:
# 逻辑代码
except Exception as e:
# try中的代码如果有异常,则此代码块中的代码会执行。
try:
# 逻辑代码
except Exception as e:
# try中的代码如果有异常,则此代码块中的代码会执行。
finally:
# try中的代码无论是否报错,finally中的代码都会执行,一般用于释放资源。
print("end")
"""
try:
file_object = open("xxx.log")
# ....
except Exception as e:
# 异常处理
finally:
file_object.close() # try中没异常,最后执行finally关闭文件;try有异常,执行except中的逻辑,最后再执行finally关闭文件。
"""
自定义的异常,如果想要触发,则需要使用:
raise MyException()类实现
class MyException(Exception):
pass
try:
# 。。。
raise MyException()
# 。。。
except MyException as e:
print("MyException异常被触发了", e)
except Exception as e:
print("Exception", e)
'''
try:
# 逻辑代码
except Exception as e:
# try中的代码如果有异常,则此代码块中的代码会执行。
finally:
# try中的代码无论是否报错,finally中的代码都会执行,一般用于释放资源。
print("end")
'''
def func():
try:
return "返回了也要执行finally"
except Exception as e:
pass
finally:
print("得过我这关")
func()
在try或except中即使定义了return,也会执行最后的finally块中的代码
以字符串的形式去
对象 中进行成员的操作
# 以前
# 对象.成员
# 创建新得对象变量
# 对象.成员 = "xxx"
# 删除
# del 对象.成员
# 反射怎么用
Python中提供了4个内置函数来支持反射:
getattr,去对象中获取成员
v1 = getattr(对象,"成员名称")
v2 = getattr(对象,"成员名称", 不存在时的默认值)
setattr,去对象中设置成员
setattr(对象,"成员名称",值)
hasattr,对象中是否包含成员
v1 = hasattr(对象,"成员名称") # True/False
delattr,删除对象中的成员
delattr(对象,"成员名称")
每个对象的内部都有自己维护的成员
在Python中如果想要导入一个模块,可以通过import语法导入;企业也可以通过字符串的形式导入。
import_module只能导入到模块级别。
# 导入模块
# import random
# from requests import exceptions as m
# from requests.exceptions import InvalidURL
# v1 = random.randint(10,100)
# 反射实现导模块
from importlib import import_module
m = import_module("random")
m = import_module("requests.exceptions")
# m = import_module("requests.exceptions.InvalidURL") # 报错,import_module只能导入到模块级别。
v1 = m.randint(10,100)
cls = m.InvalidURL
恭喜你
python体系的语法结束