重定向C库中stdio文件中的printf()函数,文件流-->串口USART1

6.4 一些说明

数据属性可以重写同名的方法属性。这是为了避免在大型系统中产生问题的意外名称冲突。所以用一些减少冲突的常用方法是很有效果的。常用的方法包括:大写字母方法名称,用唯一的字符串来做为数据属性的名称(可以是个下划线_)或者用动词命名方法和用名字命名数据属性。

数据属性就像和对象的普通用户一样可以被方法引用。换句话说,类不能用来实现纯净的数据类型。事实上,在python中不能强制数据隐藏,一切基于约定。(另一方面,如C中写的,python的实现可以做到完全隐藏实现细节并且在必要是可以控制对象的访问,这可以通过C语言扩展Python)

客户应该谨慎使用数据属性,客户可能会混淆通过方法来维护的常量。而践踏他们的数据属性。注意只要能避免重复,客户可以自己添加数据属性给对象实例,而不影响方法的合法性--再次,命名约定可以避免很多麻烦。

从方法内部引用数据属性(或者其他方法)是没有便捷方式的。 我发现这可以增加方法的可读性,当浏览一个方法时,不会轻易混淆局部变量和实例变量。

常常,方法的第一参数称为self。 这里除了约定在没有其他意思,名称self对python绝对没有特别的含义。但是,要注意,如果不遵守这种约定,你的代码可能对其他python程序员来说可读性很差。也可以理解,类浏览程序可能就是基于这种约定的写成的。

任何作为类属性的函数对象定义了一个该类实例的方法。在类定义中在书面上函数定义是封装的有时是没有必要的,也可以把一个函数对象赋值给在类中的局部变量。例如:

# Function defined outside the class

def f1(self, x, y):

return min(x, x+y)

class C:

f = f1

def g(self):

return ’hello world’

h = g

现在f,g和h 都是指向函数对象类C的所有属性,因此他们都是类C实例的所有方法--C其实和g是等价的。 需要注意的是,这个习惯只会让让程序的读者迷惑。

方法可以通过用方法属性self可以调用其他方法。

class Bag:

def __init__(self):

self.data = []

def add(self, x):

self.data.append(x)

def addtwice(self, x):

self.add(x)

self.add(x)

方法可以用和引用普通函数相同的方法使用全局名称。和方法相应的全局作用域是包含该方法定义的模块。(一个类从不能当做全局作用域来用)虽然在方法中使用全局变量很少有好的理由,但是全局作用域有很多合法的用处。首先,引入全局作用域的函数和模块可以当方法,如同定义在它里面的函数和类一样被使用。通常,包含方法的类在这个全局作用域中被定义。在接下来的一节,我们将会找到更加充分的理由来解释为什么方法可以引用它自己的类。

重定向C库中stdio文件中的printf()函数,文件流-->串口USART1

时间: 2024-08-03 21:56:06

重定向C库中stdio文件中的printf()函数,文件流-->串口USART1的相关文章

PHP文件相关的操作函数——文件操作

1.文件的代开与关闭 1.1 fopen() 作用:该函数用于打开一个文件 具体使用访问:http://www.w3school.com.cn/php/func_filesystem_fopen.asp 1.2 fclose() 该函数会撤销fopen()打开的资源类型,成功时返回TRUE,否则返回FALSE.参数必须使用fopen()或fsockopen()函数打开的已存的文件指针.在目录操作中opendir()函数也是开启一个资源,使用closedir()将其关闭. 具体使用访问:http:

bootstrap源文件&库文件&中文文档离线网页版&网站例子[程序吧 www.qhttl.com]

最近想起了做网站前台,现在流行的是响应式设计,无奈自己不会,网上照了照,居然发现了bootstrap,分享出来 内部包含有bootstrap源文件&库文件&中文文档离线网页版&网站例子网页版,下载无密码 下载地址:http://www.qhttl.com/detail/v-38593-bootstrapyuanwenjiankuwenjianzhongwenwendanglixian.html

(转)linux sudo 重定向,实现只有系统管理员才有权限操作的文件中写入信息

众所周知,使用 echo 并配合命令重定向是实现向文件中写入信息的快捷方式. 本文介绍如何将 echo 命令与 sudo 命令配合使用,实现向那些只有系统管理员才有权限操作的文件中写入信息. 比如要向 test.asc 文件中随便写入点内容,可以: $ echo "信息" > test.asc # 或者 $ echo "信息" >> test.asc 下面,如果将 test.asc 权限设置为只有 root 用户才有权限进行写操作: $ sudo

C语言文件操作(3) --- stdio.h中其他有关文件操作的函数

本篇文章会讲述一些其他有关文件操作的函数,相比前两篇文章介绍的函数,有些可能不大常用. 1. feof()函数 ·原型: int feof (FILE *stream); ·使用方法:检测"流"上的文件结束符EOF,如果检测得到,则返回一个非零值,否则返回0. ·例子(将一个文件的文本内容复制到另一个文件): #include<stdio.h> int main(void) {     FILE* input = fopen("D:\\abc.in", 

[Linux应用]Linux应用程序输出数据重定向到文件中

转自:http://blog.chinaunix.net/uid-20680966-id-4698387.html 目的是要让程序的printf的打印能重定向到某个文本中,ctrl+c强制退出后查看文本,方便调试.运行方式:a. out程序正常运行是会打印一些字符的 a.out > 1.txt 2>&1 把stdout与stderr都重定向到1.txt文件中去,结果发现运行过程中1.txt一直为空,调试发现如果a.out正常结束退出1.txt数据就正常,ctrl+c强制退出程序则1.t

【Android开发经验】如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库(转)

转载请注明出处: http://blog.csdn.net/zhaokaiqiang1992 今天一打开博客,发现一位朋友给我发了一封私信,请教下面的问题,所以特写此文章,为其解惑. 从这位朋友的提问中,我们需要了解下面的这些问题,才能给他很好的解答: (1)如何获取手机里所有歌曲的信息? (2)在歌曲文件发生改变,比如增删操作之后,如何及时的更新媒体库,从而获取到最新的歌曲信息? (3)在4.4版本之后,扫描sd卡,更新媒体库的操作发生变化了吗? 下面,我将就以上三个问题,进行解答. (1)如

用重定向方法从文件中读入或写入数据

1.问题描述 先产生10000个随机数,每十个一行,放入文件中.(用重定向方法)   用重定向方法,从文件中读入10000个数字,打印出前十名.(不许调用排序方法) 2.程序如下: 2.1 写入 import java.util.Scanner; import java.util.List; import java.util.ArrayList; public class A{ static void to_txt(){ for(int i=1;i<=10000;i++){ System.out

Linux下执行的java命令重定向到文件中的方法

在Linux下通常会执行如:java -version 的命令, 但是,命令只是打印到了屏幕上不能重定向到文件中或标准输出流中. 此时需要将错误输出流重定向到标准输出流中就可以得到了. 比如:java -version> test.log 2>&1 就可以将输出的信息重定向到test.log中,注意>与-version之间不能有空格. 再比如:java -version 2>&1 | grep "java version" | awk '{pri

Tools下的mdscongiguer 文件中 43行 oracle 配置 发现需要连接库 -lclntsh libclntsh.so 库是个什么东西呢?

Tools下的mdscongiguer     文件中 43行  oracle 配置      发现需要连接库 -lclntsh      libclntsh.so 库是个什么东西呢? 分想一个知乎网站上的帖子: -----------------------------------------------------------------------------------------------------------------------------------------------