当前位置: 首页 > news >正文

青岛建设工程管理信息网/seo搜索价格

青岛建设工程管理信息网,seo搜索价格,wordpress 文章导航,网络营销策划方案结论# 对象 类名() # 过程:# 类名() 首先 会创造出一个对象,创建了一个self变量# 调用init方法,类名括号里的参数会被这里接收# 执行init方法# 返回self # 对象能做的事:# 查看属性# 调用方法# __dict__ 对于对象的增删改查操作都可以…
# 对象 = 类名()
# 过程:# 类名() 首先 会创造出一个对象,创建了一个self变量# 调用init方法,类名括号里的参数会被这里接收# 执行init方法# 返回self
# 对象能做的事:# 查看属性# 调用方法# __dict__ 对于对象的增删改查操作都可以通过字典的语法进行
# 类名能做的事:# 实例化# 调用方法 : 只不过要自己传递self参数# 调用类中的属性,也就是调用静态属性# __dict__ 对于类中的名字只能看 不能操作# @property     # 不加括号就能调用方法,像调用属性一样        # 是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值    
# @classmethod     # 类名.方法名()就可调用,像调用def定义的函数一样,不依赖类,# 当这个方法的操作只涉及静态属性的时候 就应该使用classmethod来装饰这个方法
# @staticmethod # 类名.方法名()如果一个函数 既和对象没有关系 也和类没有关系 那么就用staticmethod将这个函数变成一个静态方法#     @property            # 变属性def price(self):# 实际价格 = 原价 * 折扣new_price = self.original_price * self.discountreturn new_price@price.setter        # 设置属性def price(self, value):self.original_price = value@price.deleter        # 删除属性def price(self):del self.original_price
# obj.price         # 获取商品价格
# obj.price = 200   # 修改商品原价
# del obj.price     # 删除商品原价
# 
# 组合 :一个对象的属性值是另外一个类的对象
# print(AB_son.__bases__)    # 查看继承的父类
# 
# 调用对象的所有的属性或方法,如果没有就到父类中找
# 
# # class Person(Animal):
#         # __key = 123  # 私有静态属性
#     def __init__(self,name,aggr,hp,sex):
#         Animal.__init__(self,name,aggr,hp)    #  方式1# super().__init__(name,aggr,hp)        # 方式二 只在新式类中有,python3中所有类都是新式类
# # super(类名,实例名).eat()    # 类外调用父类的方法
# super的本质 :不是单纯找父类 而是根据调用者的节点位置的广度优先顺序来的# 父类中没有的属性 在子类中出现 叫做派生属性
# 父类中没有的方法 在子类中出现 叫做派生方法
# 只要是子类的对象调用,子类中有的名字 一定用子类的,子类中没有才找父类的,如果父类也没有报错
# 如果父类 子类都有 用子类的# 如果还想用父类的,单独调用父类的:#       父类名.方法名 需要自己传self参数#       super().方法名 不需要自己传self
# 正常的代码中 单继承 === 减少了代码的重复
# 继承表达的是一种 子类是父类的关系
# 
# # 新式类中的继承顺序 : 广度优先            # 多继承找父类,先检测,如果后一个父类不能到达的地方就使用深度继承,一条路走到底,
                          # 如果后一个也能到达就在此打住走另一条路,找到为止。
# print(类名.__mro__) # mro方法只在新式类中存在 # # 在属性和方法前加__ ,所有的私有的 都不能在类的外部使用 # # class Goods: # __discount = 0.8 # def __init__(self,name,price): # self.name = name # self.__price = price # @property # def price(self): # return self.__price * Goods.__discount # @classmethod # 把一个方法 变成一个类中的方法,这个方法就直接可以被类调用,不需要依托任何对象 # def change_discount(cls,new_discount): # 修改折扣 # cls.__discount = new_discount # apple = Goods('苹果',5) # print(apple.price) # Goods.change_discount(0.5) # Goods.change_discount(Goods) # print(apple.price) # 当这个方法的操作只涉及静态属性的时候 就应该使用classmethod来装饰这个方法 # # # 如果一个函数 既和对象没有关系 也和类没有关系 那么就用staticmethod将这个函数变成一个静态方法 # # 静态方法 没有默认的参数 就象函数一样 # # isinstance(obj,cls)检查是否obj是否是类 cls 的对象 # issubclass(sub, super)检查sub类是否是 super 类的派生类 # 反射对象中的属性和方法 # hasattr getattr setattr delattr# print(hasattr(obj,'name')) # 检测是否含有某属性 # getattr(object, name, default=None): # n=getattr(obj,'name') #获取属性 # 返回地址加括号调用 # # Get a named attribute from an object ,getattr(x, 'y') is equivalent to x.y. # setattr(x, y, v): # setattr(obj,'sb',True) # 设置属性 # # setattr(x, 'y', v) is equivalent to "x.y = v" # delattr(x, y): # delattr(obj,'show_name111') # 删除属性#不存在,则报错 # Deletes the named attribute from the given object.delattr(x, 'y') is equivalent to ``del x.y''# class Foo(object): # 类也是对象staticField = "old boy"def __init__(self):self.name = 'wupeiqi'def func(self):return 'func'@staticmethoddef bar():return 'bar' print getattr(Foo, 'staticField') print getattr(Foo, 'func') print getattr(Foo, 'bar') # # 改变对象的字符串显示__str__,__repr__ # 自定制格式化字符串__format__ # 析构方法,当对象在内存中被释放时,自动触发执行。__del__ # __new__ # 对象后面加括号,触发执行。__call__ # 对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()() # __len__ # __hash__ # __eq__ # __getitem__,__setitem__,__delitem__

 

如果在实例化对象的过程中,可以通过 __new__ 方法来决定是否要实例化类对象

# def __new__(cls, config, *args, **kwargs):if config == '':# 如果不符合,就不实例化对象returnelse:# 符合,调用父类来实例化当前类对象return super().__new__(cls)


class useDatabase:
'''self.cmd 数据库交互 self.upload 上传数据 '''
def __new__(cls, conn_info, *args, **kwargs):
cls.host = str(conn_info['host']).strip()
cls.user = str(conn_info['user']).strip()
cls.password = str(conn_info['password']).strip()
cls.database = str(conn_info['database']).strip()
if cls.host == '':
print('地址不能为空')
return
if cls.user == '':
print('用户名不能为空')
return
if cls.password == '':
print('没有密码,可能登陆失败,即使登陆成功也存在安全隐患!')
if input('是(y)否尝试登陆?').strip().lower() != 'y': return
return super().__new__(cls)

def __init__(self,conn_info):
# conn_info = {'host':"localhost", 'user':'root', 'password':'','database':''}
# print(self.__dict__) # {}
self.conn = pymysql.connect(host=self.host,user=self.user,password=self.password,database=self.database)
self.cursor = self.conn.cursor()
# print(self.__dict__) # {'cursor': <pymysql.cursors.Cursor object at 0x000000ADFDD54CC0>,
                    #  'conn': <pymysql.connections.Connection object at 0x000000ADFDD54AC8>}

没有返回cls是不会执行__init__ 方法的   实例化类的返回值就是new中的return值

 

转载于:https://www.cnblogs.com/ming-yuan/p/9536874.html

http://www.jmfq.cn/news/5249341.html

相关文章:

  • 淘宝网站做多久/网页怎么优化
  • 西宁招聘网站开发/seo关键词排名优化怎么样
  • 郑州网站开发技术/学企业管理培训班
  • 旅游网站的建设的意义/网站开发用什么软件
  • 做网站用百度百科的资料会侵权吗/建站公司排名
  • 快速网站搭建/谷歌推广运营
  • 怎么用二维动画做网站首页步骤/国内十大搜索引擎
  • 江苏建设监理协会网站/关键字广告
  • 专门做杂志的网站/东莞网站自动化推广
  • 怎么给网站做自适应/抖音关键词搜索排名收费
  • 卡纸做荷花网站/seo搜索引擎优化工作内容
  • 做二代身份证网站/温州seo结算
  • seo排名赚app靠谱吗/东莞市网络seo推广价格
  • 扬州市住房和城乡建设网站/外贸网站平台
  • 地产商网站建设/深圳今日重大新闻
  • 淘宝搜索框去什么网站做/东莞网络推广公司
  • 网站开发用什么语言开发的/淘宝搜索关键词查询工具
  • 免费做效果图的网站/搜狗站长管理平台
  • 美橙网站建设怎么做/昆明百度推广优化
  • 新昌做网站/西安网站关键词优化费用
  • 重庆无障碍网站建设/seo数据监控平台
  • seo优化是做什么的/正版seo搜索引擎
  • 廊坊盘古网站建设/计算机培训机构哪个最好
  • 郑州建筑公司排名/成都网站搜索排名优化公司
  • 王也道长高清头像高马尾/seo专业培训中心
  • 做网站如何可以实现窗口切换功能/最新免费网站收录提交入口
  • wordpress数据同步/株洲seo优化推荐
  • 技术支持::天空网络-临汾做网站/策划营销推广方案
  • 有自己网站做淘宝客赚钱吗/电商网站设计
  • 专题网站建设/百度百家官网入口