Java python-构造函数中的另一个类

Java python-构造函数中的另一个类,java,python,class,object,constructor,Java,Python,Class,Object,Constructor,我是Python新手,很难理解如何在Python中完成以下操作(例如,我将如何在Java中完成) 我不知道为什么您认为构造函数中还有另一个类,但上面的Java在Python中可能会是这样的: 类人(对象): 定义初始化(self,xyz,a): self.name=xyz self.address=a 作为一种动态类型化语言,Python不需要知道代码编译时的类型。相反,它动态创建对象,并在需要时添加属性。这不仅允许您在初始值设定项中添加以前未声明的实例字段,还允许您在创建对象后添加内容: x

我是Python新手,很难理解如何在Python中完成以下操作(例如,我将如何在Java中完成)


我不知道为什么您认为构造函数中还有另一个类,但上面的Java在Python中可能会是这样的:

类人(对象):
定义初始化(self,xyz,a):
self.name=xyz
self.address=a
作为一种动态类型化语言,Python不需要知道代码编译时的类型。相反,它动态创建对象,并在需要时添加属性。这不仅允许您在初始值设定项中添加以前未声明的实例字段,还允许您在创建对象后添加内容:

x = Person("poke", "My address")
x.phoneNumber = "012345679"

我不知道为什么您认为构造函数中还有另一个类,但上面的Java在Python中可能会是这样的:

类人(对象):
定义初始化(self,xyz,a):
self.name=xyz
self.address=a
作为一种动态类型化语言,Python不需要知道代码编译时的类型。相反,它动态创建对象,并在需要时添加属性。这不仅允许您在初始值设定项中添加以前未声明的实例字段,还允许您在创建对象后添加内容:

x = Person("poke", "My address")
x.phoneNumber = "012345679"
大概是这样的:

class Person(object):
    def __init__(self, xyz, a):
        self.name = xyz
        self.address = a
    # ...
现在,您当然可以在构造函数中定义一个新类:

class Person(object):
    def __init__(self, xyz, a):
        self.name = xyz
        self.address = a
        class Glass(object):
            def __init__(self):
                self.glass_name = xyz
                #... whatever - but what purpose would this serve?
    # ...
大概是这样的:

class Person(object):
    def __init__(self, xyz, a):
        self.name = xyz
        self.address = a
    # ...
现在,您当然可以在构造函数中定义一个新类:

class Person(object):
    def __init__(self, xyz, a):
        self.name = xyz
        self.address = a
        class Glass(object):
            def __init__(self):
                self.glass_name = xyz
                #... whatever - but what purpose would this serve?
    # ...

如上文提到的@poke,您可以:

class Person (object):
    def __init__ (self, xyz, a):
       self.name = xyz
       self.address = a
如果您的意思是也有默认构造函数,那么您可以有如下内容:

class Person (object):
    def __init__ (self, xyz=None, a=None):
       self.name = xyz
       self.address = a
这将允许您无参数调用构造函数

您可以将构造函数用作:

p = Person("yadda","bla")


如上文提到的@poke,您可以:

class Person (object):
    def __init__ (self, xyz, a):
       self.name = xyz
       self.address = a
如果您的意思是也有默认构造函数,那么您可以有如下内容:

class Person (object):
    def __init__ (self, xyz=None, a=None):
       self.name = xyz
       self.address = a
这将允许您无参数调用构造函数

您可以将构造函数用作:

p = Person("yadda","bla")


Python并没有真正的
private
变量,在成员访问方面,每个人都像成年人一样对待,但无论如何,您可能最终实现方法。注意,
\uu
变量名前缀只是“私有”变量的命名约定,尽管它实际上并没有停止对它们的访问

class Person(object): # subclass object for a new-style class
    def __init__(self, name, address):
        self._name = name
        self._address = address

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, name):
        self._name = name

    @property
    def address(self):
        return self._address

    @address.setter
    def address(self, address):
        self._address = address

Python并没有真正的
private
变量,在成员访问方面,每个人都像成年人一样对待,但无论如何,您可能最终实现方法。注意,
\uu
变量名前缀只是“私有”变量的命名约定,尽管它实际上并没有停止对它们的访问

class Person(object): # subclass object for a new-style class
    def __init__(self, name, address):
        self._name = name
        self._address = address

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, name):
        self._name = name

    @property
    def address(self):
        return self._address

    @address.setter
    def address(self, address):
        self._address = address

不确定构造器中的另一个类是什么意思-因此python不需要在构造器时知道对象是什么样子?@kkudi-python是一种动态类型语言,您甚至可以在创建对象后添加内容:
x=Person()
然后
x.something='Foo'
不确定构造函数中的另一个类是什么意思-因此python不需要在构造函数时知道对象是什么样子?@kkudi python是一种动态类型的语言,您甚至可以在创建对象后添加内容:
x=Person()
然后
x.something='Foo'