python初始面向对象

 

 

1.类的定义
    定义是通过class关键字加大写字母开头的类名
class Person(object):
        pass
    class 后面接类名,即Person 类名通常开头大写首字母的单词
    接着(object),表示该类是从哪个类继承下来的,如果没有合适的
    继承类,就使用默认object类,这个是所有类最终都会继承的类

    定义好Peraon类,就可以根据Person类创建出Person的实例化对象
    创建实力例就是通过类名+()实现的
p = Person()   #创建实例空间
print(p)     #<__main__.Person object at 0x0000000002721748>
print(Person)   #  <class '__main__.Person'>
可以看到p指向是一个Person实例空间,Person指向是一个本类
可以自由的给实例变量捆绑属性
p.name = "alex"
print(p.name)     #  alex



面向对象:
   1类,具有相同属性和技能的一类事物   class Person:
   2.对象,具体的类的表现,具体的实例    p = Person("alex",18)  具体的实例化空间
class Person:
    类体分两部分:  变量部分
                  方法(函数)类体部分

class Person:
    mind = "有思想的"   #  变量部分,静态变量,静态字段

    def __init__(self):  # 构造方法

    def func(self):     #方法(函数)部分,动态变量
        print(333)
类名的角度:

  

# 由于可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为
# # 必须绑定的属性强制性的填写进去,通过定义一个特殊的__init__方法
# # 在创建实例的时候,把 name , age ,sex  等属性捆绑上去.
# #
# class Person:
#     money = "货币"
#     def __init__(self,name,age,sex):
#         self.name = name
#         self.age = age
#         self.sex = sex
#     #注:__init__是双下划线
# 
#     #注意:
#         #  __init__方法第一个参数永远是self,表示创建的实例本身,
#         # 因此在__init__方法内部,就可以把各种属性绑定到self
#         # 因此self就是指向创建的实例本身
#         # 有了__init__方法,在创建实例的时候,就不能传入空的参数了
#         # 必须传入与__init__方法匹配的参数,但self需要要传,python
#         # 解释器会自己把实例变量传进去
# # 静态操作:
# print(Person.money)   #  货币  查询
# Person.moind = "有思想的"
# # print(Person.__dict__)      #  增加   'moind': '有思想的'}
# del Person.money   #
# print(Person.__dict__)
# 
# # p = Person("alex",80,"男")
# # print(p.age)   # 80
# # print(p.__dict__)     #  {'name': 'alex', 'age': 80, 'sex': '男'}    对象操作类中的静态变量 : 只能查
# # print(p.name)   #  80  查
# 
# # print(Person.__dict__)      #查询类中所有的内容
# 
# # 和普通方法相比,在类中定义的函数只有一点不同,就是第一个参数
# # 永远都是self,并且调用时,不用传递参数.除此之外,类的方法与普通方法
# # 没有什么区别
# 
# # 总结:
# #     1.__dict__:可以查询类和对象中的类容,并且以字典形式返回
# #     2.类名+()---实例化一个对象
# #     3.实例化对象之后会自动执行__init__方法,并且将对象传给self参数
# #     4.给对象封装相应的属性
# #
# # 2.数据封装
# #     面向对象编程的一个重要特点就是数据封装
# #     在Person类中,每个实例都拥有各自的 name,age,sex数据
# #     Person实例化本身就拥有这些数据,要访问这些数据,就没有
# #     必要从外面的函数去访问,可以直接在Person类的内部定义访问数据的
# #     函数,这样就把"数据"封装起来了.这些封装数据的函数时和Person
# #     类本身关联起来,我们称为类的方法.
# # class Person:
# #     def __init__(self,name,age,sex):
# #         self.name = name
# #         self.age = age
# #         self.sex = sex
# #     def func(self):    #
# #         print("%s,%s,%s" %(self.name,self.age,self.sex))
# #
# # p = Person("alex",10,"男")
# # p.func()      # alex,10,男
# # 这样一来,我们从外部看Person类,就只需要知道,创建实例需要给出 name,age,sex
# # 如何打印,都是在Person类的内部定义的,这些数据和逻辑被"封装"起来了,调用
# # 很容易,但却不知道内部实现细节.封装的另外一个好处就是可以给Person类增加形容方法
# #
# # 总结:
# #     1.类创建的是实例的模板,而实例则是一个具体的对象,各个实例拥有的数据都是
# #     相互独立的,互不影响>
# #     2.方法就是与实例绑定的函数,和普通函数不同,方法可以直接返回实例的数据
# #     3.python允许实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们
# #     都是同一类的不同

 



 

posted @ 2018-07-28 10:57  Hear7  阅读(192)  评论(0编辑  收藏  举报