自己敲过之后效果更好!
#!/user/bin/env python
# -*- coding:utf-8 -*-
#变量
#_xxx,单下划线开头的变量,标明是一个受保护(protected)的变量,原则上不允许直接访问,但外部类还是可以访问到这个变量。
class Student:
def __init__(self,name,age):
self._name = name
self.age = age
stu = Student('miao','23')
#当要输入_name时,pycharm不会进行_name的提示
print(stu._name)
#当要显示age时,pycharm会进行age的提示
print(stu.age)
#output:
#miao
#23
#__xxx,双下划线开头的,表示的是私有(private)的变量
#只能是允许这个类本身进行访问,连子类也不可以
#用于命名一个类属性(类变量),调用时名字被改变
#(在类Student内部,__name变成_Student__name,如self._Student__name)
#双下划线开头的实例变量仍然可以通过_Student__name来访问__name变量:
class Person:
def __init__(self,name):
self.__name = name
per = Person('Qi')
print(per._Person__name)
#output:Qi
#__xxx__,以双下划线开头,并且以双下划线结尾的,是内置变量
#内置变量是可以直接访问的,不是private变量,如__init__,__import__或是__file__
#所以,不要自己定义这类变量
#xxx_,单下划线结尾的变量一般只是为了避免与python关键字的命名冲突
#USER_CONSTANT,大写加下划线,对于不会发生改变的全局变量,使用大写加下划线
#函数--大部分使用小写和下划线
#私有方法:小写和一个前导下划线
#这里和私有变量一样,并不是真正的私有访问权限
#同时也应该注意一般函数不要使用两个前导下划线(当遇到两个前导下划线时,Python的名称改编特性将发挥作用)
class privateC:
def _secrete(self):
print("Don\'t test me")
priC = privateC()
priC._secrete()
#output:
#Don't test me
#特殊方法:小写和两个前导下划线,两个后置下划线
#这种风格只应用于特殊函数,比如操作符重载等
def __add__(self,other):
return int.__add__(other)
#函数参数:小写和下划线,缺省值等号两边无空格
def connect(self,user=None):
self._user = user
#类
#类总是使用驼峰格式命名,即所有单词首字母大写其余字母小写
#类名应该简明精确,并足以从中理解类所完成的工作
#常见的一个方法是使用表示其类型或者特性的后缀,例如:SQLEngine,MimeTypes
#对于基类而言,可以使用一个Base或者Abstract前缀
#不要滥用 *args 和 **kwargs,可能会破坏函数的健壮性