<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python on 张同的博客</title><link>https://www.zhangblogs.cn/categories/python/</link><description>Recent content in Python on 张同的博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Wed, 24 Jul 2024 11:29:35 +0800</lastBuildDate><atom:link href="https://www.zhangblogs.cn/categories/python/index.xml" rel="self" type="application/rss+xml"/><item><title>python通过oracle客户端连接数据库</title><link>https://www.zhangblogs.cn/archives/1721791476103/</link><pubDate>Wed, 24 Jul 2024 11:29:35 +0800</pubDate><guid>https://www.zhangblogs.cn/archives/1721791476103/</guid><description>&lt;img src="https://www.zhangblogs.cn/upload/DALL·E%202024-07-24%2011.27.39%20-%20An%20enhanced%20digital%20art%20illustration%20emphasizing%20a%20Python%20script%20connecting%20to%20an%20Oracle%20database.%20The%20focus%20is%20on%20a%20large,%20central%20computer%20screen%20di.webp" style="display: inline-block" alt="DALL·E 2024-07-24 11.27.39 - An enhanced digital art illustration emphasizing a Python script connecting to an Oracle database. The focus is on a large, central computer screen di.webp" /&gt;
&lt;h3&gt;&lt;strong&gt;&lt;span fontsize="" color=""&gt;安装包&lt;/span&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;Anaconda3-2019.10-Linux-x86_64.sh&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;oracle Version 11.2.0.4.0 client for centos 64-bit&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;SQL&lt;/span&gt;&lt;em&gt;&lt;span fontsize="" color=""&gt;Plus: Additional libraries and executable for running SQL&lt;/span&gt;&lt;/em&gt;&lt;span fontsize="" color=""&gt;Plus with Instant Client&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;span fontsize="" color=""&gt;注意，python连接Oracle有一个非常苛刻的条件，就是你的python版本，系统版本，目标端的数据库，都必须是一样的位，一般都是64BIT，32位同学想办法改吧！&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;span fontsize="" color=""&gt;创建连接用户&lt;/span&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;adduser dwzyywzt
passwd dwzyywzt
​
# 变更权限，可写
chmod -v u+w /etc/sudoers
​
vi /etc/sudoers
-------------------------------------------------------
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
dwzyywzt    ALL=(ALL)       ALL （添加这一行）
-------------------------------------------------------
# 撤销权限
chmod -v u-w /etc/sudoers 
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;strong&gt;&lt;span fontsize="" color=""&gt;安装python-conda&lt;/span&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 默认软件上载位置是/mnt
cd /mnt/
​
# 赋权
chown dwzyywzt:dwzyywzt Anaconda3-2019.10-Linux-x86_64.sh
​
su - dwzyywzt
chmod +x Anaconda3-2019.10-Linux-x86_64.sh
​
./Anaconda3-2019.10-Linux-x86_64.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;进入安装界面，按回车看安装须知&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Python中的面向对象特性</title><link>https://www.zhangblogs.cn/archives/1721468041627/</link><pubDate>Sat, 20 Jul 2024 17:38:05 +0800</pubDate><guid>https://www.zhangblogs.cn/archives/1721468041627/</guid><description>&lt;h2&gt;&lt;strong&gt;&lt;span fontsize="" color=""&gt;前言&lt;/span&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;众所周知，Python是非常典型的面向对象语言，一切都是对象。 那么面向对象有如下三个特性&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;封装性&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;继承性&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;多态性&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;最近在学习Java的过程中，对这三个问题进行了反思。&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;&lt;span fontsize="" color=""&gt;封装性&lt;/span&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;h3&gt;&lt;strong&gt;&lt;span fontsize="" color=""&gt;示例&lt;/span&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span fontsize="" color=""&gt;python的封装性没有Java那么好，甚至可以说是随便，它的私有属性和方法是通过前置下划线实现的。&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- --&gt;
&lt;pre&gt;&lt;code&gt;class Student():
    def __init__(self):
        self._age = 10
        self._name = 'Bob'
    def sayMyName(self):
        return &amp;quot;My name is %s&amp;quot;%(self._name)
    def __sayMyNameQuietly(self):
        return &amp;quot;My name is %s&amp;quot;%(self._name)
​
if __name__ == '__main__':
    a = Student()
    a.sayMyName()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;上面的语句执行后，会返回 My Name is Bob,但是你通过调用a这个实例的方法，是无法访问到age和name属性及sayMyNameQuietly方法的。 这就是python的障眼法封装， 但是你可以通过&lt;/span&gt;&lt;strong&gt;&lt;span fontsize="" color=""&gt;a._age&lt;/span&gt;&lt;/strong&gt;&lt;span fontsize="" color=""&gt;和&lt;/span&gt;&lt;strong&gt;&lt;span fontsize="" color=""&gt;a._name&lt;/span&gt;&lt;/strong&gt;&lt;span fontsize="" color=""&gt;去访问私有变量， 可以通过&lt;/span&gt;&lt;strong&gt;&lt;span fontsize="" color=""&gt;a._Student__sayMyNameQuietly()&lt;/span&gt;&lt;/strong&gt;&lt;span fontsize="" color=""&gt; 去访问私有方法。&lt;/span&gt;&lt;/p&gt;</description></item></channel></rss>