<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[su_da_sheng的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/su_da_sheng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; su_da_sheng]]></copyright><item><title><![CDATA[pymysql]]></title><link>https://blog.youkuaiyun.com/su_da_sheng/article/details/110349488</link><guid>https://blog.youkuaiyun.com/su_da_sheng/article/details/110349488</guid><author>su_da_sheng</author><pubDate>Sun, 29 Nov 2020 21:06:54 +0800</pubDate><description><![CDATA[1. pymysql连接数据库


import pymysql

user = input("username:")
pwd = input("password:")

# 创建数据库连接对象
conn = pymysql.connect(host="127.0.0.1",user='root',password='',database="db03")
# 创建游标，执行sql语句需要创建游标
cursor = conn.cursor()
sql = "select * from t01 where na]]></description><category></category></item><item><title><![CDATA[__class__.__name__和__class__.__module__]]></title><link>https://blog.youkuaiyun.com/su_da_sheng/article/details/110285504</link><guid>https://blog.youkuaiyun.com/su_da_sheng/article/details/110285504</guid><author>su_da_sheng</author><pubDate>Sat, 28 Nov 2020 16:13:54 +0800</pubDate><description><![CDATA[1.__class__.__name__

生成对象的类，或者生成类的元类的名称。

2.__class__.__module__

生成对象的类，或者生成类的元类所在的模块的名称。
]]></description><category></category></item><item><title><![CDATA[python—其他内置函数]]></title><link>https://blog.youkuaiyun.com/su_da_sheng/article/details/109031771</link><guid>https://blog.youkuaiyun.com/su_da_sheng/article/details/109031771</guid><author>su_da_sheng</author><pubDate>Mon, 12 Oct 2020 18:21:17 +0800</pubDate><description><![CDATA[1.eval()

将字符串类型的代码执行并返回结果。

eval函数就是实现str与list、dict、tuple之间的转化。


a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
aa = eval(a)
print(type(a))
print(type(aa))
b = "{1: 'a', 2: 'b'}"
bb = eval(b)
print(type(b))
print(type(bb))
c = "([1,2], [3,4], [5,6], [7,8], (.]]></description><category></category></item><item><title><![CDATA[python—封装]]></title><link>https://blog.youkuaiyun.com/su_da_sheng/article/details/109024413</link><guid>https://blog.youkuaiyun.com/su_da_sheng/article/details/109024413</guid><author>su_da_sheng</author><pubDate>Mon, 12 Oct 2020 11:27:50 +0800</pubDate><description><![CDATA[隐藏对象的属性和实现细节，仅对外提供公共访问方式。

优点：将变化隔离、便于使用、提高复用性、提高安全性。

原则：1.将不需要对外提供的内容都隐藏起来。

     2.把属性都隐藏，提供公共方法对其访问。


# 广义上面向对象的封装 ：代码的保护，面向对象的思想本身就是一种
# 只让自己的对象能调用自己类中的方法

# 狭义上的封装 —— 面向对象的三大特性之一
# 属性 和 方法都藏起来 不让你看见
class Person:
    __key = 123  # 私有静态属性
  ...]]></description><category></category></item><item><title><![CDATA[python—抽象类与接口类]]></title><link>https://blog.youkuaiyun.com/su_da_sheng/article/details/109022282</link><guid>https://blog.youkuaiyun.com/su_da_sheng/article/details/109022282</guid><author>su_da_sheng</author><pubDate>Mon, 12 Oct 2020 10:27:04 +0800</pubDate><description><![CDATA[1. 接口类

接口提取了一群类共同的函数，可以把接口当做一个函数的集合。

然后让子类去实现接口中的函数。

这么做的意义在于归一化，什么叫归一化，就是只要是基于同一个接口实现的类，这些类都应当实现接口类的定义的接口方法。


# java ： 面向对象编程
# 设计模式   —— 接口
# 接口类 ： python原生不支持
# 接口类不可以实例化
from abc import abstractmethod,ABCMeta
class Payment(metaclass=ABCMeta):  # 元类]]></description><category></category></item><item><title><![CDATA[python—常用模块]]></title><link>https://blog.youkuaiyun.com/su_da_sheng/article/details/108998309</link><guid>https://blog.youkuaiyun.com/su_da_sheng/article/details/108998309</guid><author>su_da_sheng</author><pubDate>Sat, 10 Oct 2020 16:26:04 +0800</pubDate><description><![CDATA[1.collections模块

1.1namedtuple

生成可以使用名字来访问元素内容的tuple。


#一个点的二维坐标就可以表示成：
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x)
#输出：1
print(p.y)
#输出：2

1.2deque

双端队列，可以快速的从另外一侧追加和推出对象。

deque是为了高效实现插入和删除操...]]></description><category></category></item><item><title><![CDATA[python—*args和**kwargs的区别]]></title><link>https://blog.youkuaiyun.com/su_da_sheng/article/details/108996756</link><guid>https://blog.youkuaiyun.com/su_da_sheng/article/details/108996756</guid><author>su_da_sheng</author><pubDate>Sat, 10 Oct 2020 14:47:38 +0800</pubDate><description><![CDATA[1.*args 用来将参数打包成tuple给函数体调用


def args_test(x, y, *args):
    print(x, y, args)
args_test(1,2,3,4,5)
#输出：1 2 (3, 4, 5)

2.**kwargs的使用方法

**kwargs 打包关键字参数成dict给函数体调用


def kwargs_test(**kwargs):
    print(kwargs)
kwargs_test(a=1, b=2, c=3)

#输出：{'a': 1, ...]]></description><category></category></item><item><title><![CDATA[python—常用装饰器函数]]></title><link>https://blog.youkuaiyun.com/su_da_sheng/article/details/108995882</link><guid>https://blog.youkuaiyun.com/su_da_sheng/article/details/108995882</guid><author>su_da_sheng</author><pubDate>Sat, 10 Oct 2020 14:19:22 +0800</pubDate><description><![CDATA[1.property

将方法伪装成属性

2.setter 修改属性

只有当被property装饰的方法，又实现了一个同名方法，且被setter装饰器

装饰了，在被装饰的方法赋值的时候，就触发被setter装饰器装饰的方法

3.deleter 删除属性




class Student:
    def __init__(self,name):
        self.__name = name

    @property
    def name(self):
        ret...]]></description><category></category></item><item><title><![CDATA[python—内置函数]]></title><link>https://blog.youkuaiyun.com/su_da_sheng/article/details/108977399</link><guid>https://blog.youkuaiyun.com/su_da_sheng/article/details/108977399</guid><author>su_da_sheng</author><pubDate>Fri, 09 Oct 2020 15:04:00 +0800</pubDate><description><![CDATA[1.isinstance和issubclass

1.1 isinstance(obj,cls)检查是否obj是否是类 cls 的对象


class Foo(object):
     pass
  
obj = Foo()
  
isinstance(obj, Foo)

1.2issubclass(sub, super)检查sub类是否是 super 类的派生类


class Foo(object):
    pass
 
class Bar(Foo):
    pass
 
issubclass.]]></description><category></category></item></channel></rss>